看板 C_and_CPP 關於我們 聯絡資訊
我寫了一段 code 長這樣: http://0rz.tw/13rR4 (包含了一些不相關的片段 不過不長 還請包涵) compile 沒問題 但在執行的時候會掛在第 46 行 輸出下列 error msg: video_segmentation: /usr/include/boost/multi_array/multi_array_ref.hpp:488: boost::multi_array_ref<T, NumDims>& boost::multi_array_ref<T, NumDims>::operator=(const ConstMultiArray&) [with ConstMultiArray = boost::multi_array<FeaturePoint, 3u, std::allocator<FeaturePoint> >, T = FeaturePoint, unsigned int NumDims = 3u]: Assertion `std::equal(other.shape(),other.shape()+this->num_dimensions(), this->shape())' failed. Command terminated by signal 6 拜了一下估狗大神發現應該是 operator = 的問題 http://0rz.tw/kthHi 不過令人好奇的是從頭到尾我並沒有用到 = 呀 但實際上如果 comment 46 行 uncomment 47, 48 這樣的跑法就是 OK 的 為什麼? 又,multi_array 不實作 = (最起碼 dimension 不同的 =)是為什麼?這樣實在很麻煩 有沒有其他的替代品(ublas 我用過,還是 multi_array 比較簡潔) 雖然說要繞也是可以繞過這個問題 不過還是想請板友們指點一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.29.130
avhacker:應該是這行OpticalFlowInFrame load_optical_flow_info() 02/27 17:29
avhacker:OpticalFlowInFrame 是個 multi_array. 以傳值方式傳回 02/27 17:29