#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 году…