Я хотел бы знать, возможно ли это. У меня есть функция:
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))
И это приводит к ошибке компиляции: «взять адрес временного»
Является ли единственный вариант, чтобы функция возвращала тип указателя или есть способ сделать то, что я прошу?
РЕДАКТИРОВАТЬ:
Оба приведенных ниже ответа верны, я поставил Джонатону правильную отметку, так как на этот раз он занял первое место.