Openmesh library錯誤之 operator OpenMesh::EdgeHandle': Implicit casts of iterators are unsafe. Use dereferencing operators -> and * instead.

 最近在把舊project移至新框架,產生了一系列的問題,接下來我會一一把遇到的問題做個記錄,以利之後遇到同樣問題可以快速解決,希望也能幫助到大家

這個問題的錯誤描述如下:

'OpenMesh::Iterators::GenericIteratorT<OpenMesh::PolyConnectivity::This,OpenMesh::ArrayKernel::EdgeHandle,OpenMesh::ArrayKernel,{&OpenMesh::ArrayKernel::has_edge_status,0},{&OpenMesh::ArrayKernel::[thunk]: __thiscall OpenMesh::ArrayKernel::`vcall'{12,{flat}}' }',0}>::operator OpenMesh::EdgeHandle': Implicit casts of iterators are unsafe. Use dereferencing operators -> and * instead.


它發生在以下的情況中,裡面的符號使用是→,(左)這邊為原始程式→(右)遇此錯誤修改後的程式

  • 以下程式為用以檢查邊界
                !mesh.is_boundary(eit)!mesh.is_boundary(*eit)
  • 以下程式為用以從半邊取得點
                halfedge_handle(eit, 0)halfedge_handle(*eit, 0)
  • 以下程式為用以為遍歷點時取得點
                                                            point(v_it)→point(*v_it)

留言

這個網誌中的熱門文章

🔍Vue.js 專案錯誤排查:解決 numericFields is not defined 與合併儲存格邏輯最佳化

🛠【ASP.NET Core + Oracle】解決 ORA-00904 "FALSE": 無效的 ID 錯誤與資料欄位動態插入顯示問題

🔎EF Core 連 Oracle 出現 ORA-00600 [kpp_concatq:2] 的完整排錯指南(含 EF Core ToString/CultureInfo 錯誤)