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

VS2017安装PCL1.8.1环境搭建

VS2017配置PCL点云

如何去除 PCL 中的异常点以进行基于区域增长的表面检测

PCL 文件中的自定义异常

有啥方法可以减少 Radius 异常值删除 [pcl 异常值删除] 的执行时间?