我想知道这是否可能。我有一个功能:
pcl::PointCloud<pcl::PointXYZRGB> createPointCloud(std::Vector<Nodes> input)
返回一个点云。我想知道是否可以获取这个点云,并制作一个指向它的拷贝的指针。 pcl 像这样指向云:
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(new pcl::PointCloud<pcl::PointXYZRGB>)
我试过这样做:
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(createPointCloud(nodeList))
这会导致一个非常明显的错误,即。 createPointCloud 不返回指向云的指针。
我也试过这个:
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR = &createPointCloud(nodeList)
还有这个:
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(&createPointCloud(nodeList))
这会导致编译错误:“获取临时地址”
是让函数返回指针类型的唯一选择,还是有办法按照我的要求做?
编辑:
以下两个答案都是正确的,我已经授予 Jonathon 正确的勾号,因为他这次是第一个。
最佳答案
是的,使用 makeShared()方法。
关于c++ - 从 pcl::PointCloud 创建 pcl::PointCloud::Ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644429/