Ошибка инициализации переменной PointLCloudT::Ptr с использованием указателя make_shared boost

#c #boost

#c #boost

Вопрос:

Я пытаюсь создать эту библиотеку для сегментации superboxel.Когда я пытаюсь это сделать, я получаю эту ошибку:

 supervoxel_clustering/src/testing.cpp:157:66: error: conversion from ‘boost::detail::sp_if_not_array<pcl::PointCloud<pcl::PointXYZL> >::type {aka boost::shared_ptr<pcl::PointCloud<pcl::PointXYZL> >}’ to non-scalar type ‘pcl::PointCloud<pcl::PointXYZL>::Ptr {aka std::shared_ptr<pcl::PointCloud<pcl::PointXYZL> >}’ requested
     PointLCloudT::Ptr subcloud = boost::make_shared<PointLCloudT>();
  

Поскольку это было в testing.cpp я попытался проигнорировать этот файл для сборки исходного кода. Но он снова исчез на:

 supervoxel_clustering/src/clustering.cpp:406:63: error: conversion from ‘boost::detail::sp_if_not_array<pcl::Supervoxel<pcl::PointXYZRGBA> >::type {aka boost::shared_ptr<pcl::Supervoxel<pcl::PointXYZRGBA> >}’ to non-scalar type ‘pcl::Supervoxel<pcl::PointXYZRGBA>::Ptr {aka std::shared_ptr<pcl::Supervoxel<pcl::PointXYZRGBA> >}’ requested
     SupervoxelT::Ptr sup_new = boost::make_shared<SupervoxelT>();
  

Что может быть не так с созданием экземпляра boost::make_shared?

Версия Boost: 1.58.0.1ubuntu1

Версия PCL: 1.11

Компилятор C 14

Редактировать:

Хотя я не знаю, чем была вызвана ошибка, я исправил ее с помощью:

 PointLCCloudT::Ptr cloud_temp(new PointLCCloudT);
  

Комментарии:

1. Ошибка возникает при попытке преобразовать boost shared_ptr в std. PCL начал переход на общие указатели std, я думаю, в 2019 году…