我正在尝试使用 Clang 14 构建 PCL,但在尝试编译以下代码时,它在
SparseMatrix
类上失败并出现错误 member reference base type 'MatrixEntry<T> *' is not a structure or union
:for (int ii=0; ii<m_ppElements[i].size(); ii++)
,其中 m_ppElements 声明为 MatrixEntry<T>** m_ppElements;
所以错误是正确的,C 风格的数组指针没有成员
size()
或者事实上任何无需运算符 ->
即可访问的方法,并且 .
不可重载,也没有任何强制转换。
但是,这段代码可以在 MSVC 17 和 Clang 11 上正常构建。
有关信息,此问题已在此(合并的)PR 中修复https://github.com/PointCloudLibrary/pcl/pull/5256/files