使用 'typename' 关键字将非类型 "pcl::PointCloud<PointT>::Ptr [with PointT=T]" 视为依赖 contextC/C++(2675) 中的类型

use the 'typename' keyword to treat nontype "pcl::PointCloud<PointT>::Ptr [with PointT=T]" as a type in a dependent contextC/C++(2675)

我写了两个函数。

PointCloud<PointXYZ>::Ptr rotateCloud(PointCloud<PointXYZ>::Ptr src);
PointCloud<PointXYZRGB>::Ptr rotateCloud(PointCloud<PointXYZRGB>::Ptr src);

在这两个函数中,我写了完全相同的代码,没有内部 <><PointXYZ><PointXYZRGB>.

想写单function.I听说有Template.I试过了

template <typename T>
PointCloud<T>::Ptr rotateCloud(PointCloud<T>::Ptr src);

我出错了。

use the 'typename' keyword to treat nontype "pcl::PointCloud<PointT>::Ptr [with PointT=T]" as a type in a dependent contextC/C++(2675)

我无法理解此错误消息。

谁能看懂?

由于 ::Ptr 是依赖类型,您需要 typename 参数和 return 类型

template <typename T>
typename PointCloud<T>::Ptr rotateCloud(typename PointCloud<T>::Ptr src);