tuple, pcl :: visualization :: PointCloudColorHandler>의 튜플을 만들려고합니다. 그러나 대응하는 타입의 인자를 std ::로 전달할 때 make_tuple은 pcl :: PointCloud로 전달 된 인수가 실제로 pcl :: PointCloud 인 것을 말합니다. & & 올바른 값은 rvalue reference입니다. pcl :: PointCloud 유형이 rvalue 참조가되는 방식을 이해하지 못합니다.make_tuple은 템플릿 인자로 T를 기대할 때 T &&로 타입 T를 전달합니다.
pcl::PointCloud<pcl::PointXYZRGB> cloud;
pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr constCloud(&cloud);
pcl::io::loadPCDFile<pcl::PointXYZRGB>(file.getPCDFilePath().string(), cloud);
pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> rgbHandler(constCloud);
associatedClouds.insert(std::make_tuple<std::string, pcl::PointCloud<pcl::PointXYZRGB>, pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> >(file.getPCDFileName(), cloud, rgbHandler));
visualizedFiles.push_back(cloud);
내가 오류는 다음과 같습니다 :
/Users/wfehrnstrom/CmakeTest/map.cpp:53:29: error: no matching function for call to 'make_tuple'
associatedClouds.insert(std::make_tuple<std::string, pcl::PointCloud<pcl::PointXYZRGB>, pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB> >(file.getPCDFileName(), cloud, rgbHandler));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/tuple:868:1: note: candidate function [with _Tp = <std::__1::basic_string<char>, pcl::PointCloud<pcl::PointXYZRGB>, pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB>>] not viable: no known conversion from 'pcl::PointCloud<pcl::PointXYZRGB>' to 'pcl::PointCloud<pcl::PointXYZRGB> &&' for 2nd argument
make_tuple(_Tp&&... __t)
나는 꽤 잃었어요 여기에 코드입니다. 고맙습니다.
''make_tuple'에서'<>'를 제거하고, 단지''std :: make_tuple (file.getPCDFileName(), cloud, rgbHandler);''템플릿 인수 공제가 그 일을하도록하십시오. – 101010
질문의 형식을 지정하십시오. 개가 그것의 절반을 먹은 것처럼 보입니다. 삽입 코드 조각은 다음과 같이 backticks 사이에 나옵니다 :'\'foo \''. –