PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段
Posted 没事就要敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段相关的知识,希望对你有一定的参考价值。
1 问题描述
在进行超体素分割时,出现以下 error
1>d:\\program files\\pcl 1.8.1\\3rdparty\\boost\\include\\boost-1_64\\boost\\typeof\\msvc\\typeof_impl.hpp(125): error C2988: 不可识别的模板声明/定义
1>d:\\program files\\pcl 1.8.1\\3rdparty\\boost\\include\\boost-1_64\\boost\\typeof\\msvc\\typeof_impl.hpp(125): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>d:\\program files\\pcl 1.8.1\\3rdparty\\boost\\include\\boost-1_64\\boost\\typeof\\msvc\\typeof_impl.hpp(125): error C2913: 显式专用化;“boost::type_of::id2type_impl”不是类模板的专用化
1>d:\\program files\\pcl 1.8.1\\3rdparty\\boost\\include\\boost-1_64\\boost\\typeof\\msvc\\typeof_impl.hpp(125): error C2059: 语法错误:“<”
1>d:\\program files\\pcl 1.8.1\\3rdparty\\boost\\include\\boost-1_64\\boost\\typeof\\msvc\\typeof_impl.hpp(126): error C2334: “{”的前面有意外标记;跳过明显的函数体
这五个问题共同指向同一位置
template<typename ID, typename T>
struct msvc_extract_type : msvc_extract_type<ID,msvc_extract_type_default_param>
{
template<>
struct id2type_impl<true> //VC8.0 specific bugfeature
{
typedef T type;
};
template<bool>
struct id2type_impl;
typedef id2type_impl<true> id2type;
};
2 解决方案
在包含的所有源文件前添加以下代码
#define BOOST_TYPEOF_EMULATION
即,原始头文件如下:(报错)
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/segmentation/supervoxel_clustering.h>
修改后:
#define BOOST_TYPEOF_EMULATION
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/segmentation/supervoxel_clustering.h>
问题解决。
以上是关于PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段的主要内容,如果未能解决你的问题,请参考以下文章
PCL异常处理:Generic Waring:In C:Build3rdPartyx64VTK-8.0.0RenderingCorevtkPolyDataMapper