Я хотел бы знать, возможно ли это. У меня есть функция:Создайте pcl :: PointCloud :: Ptr из pcl :: PointCloud
pcl::PointCloud<pcl::PointXYZRGB> createPointCloud(std::Vector<Nodes> input)
, который возвращает облако точек. Я хотел бы знать, можно ли взять это облако точек и сделать указатель на его копию. ПКЛ делает указатели на облака, как это:
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))
И это приводит к ошибке компиляции: "принимая адрес временного"
Это единственный вариант есть функция, возвращающая тип указателя или есть способ делать то, что я прошу?
EDIT:
Оба приведенных ниже ответов являются правильными, я присудили Джонатон правильный клеща, как он попал в этот раз впервые.
Хороший звонок, это правильно. –
@Ben да, он тоже сделал. Любой из этих методов должен работать, в зависимости от того, как вы возвращаете свой класс из своей функции. Какой компилятор вы используете? – johnathon
cmake, поэтому im предположение g ++ –