【Debug】 error: ‘accumulate’ is not a member of ‘std’

1、问题

程序中使用:

std::accumulate()

accumulate定义在#include中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理

编译错误:
perception/perception_common/src/utils.cpp:30:26: error: ‘accumulate’ is not a member of ‘std’
float total_exp = std::accumulate(logits.begin(), logits.end(), 0.0);

2、解决办法

由于ubuntu18.04安装的ros-melodic使用的是c++14的标准,很多c++11的用法不可支持使用
即便是CMakeLists.txt中添加
add_definitions(-std=c++11)
或者 add_definitions(-std=c++14)
或者 add_definitions(-std=c++17)
都不行!!!!

解决办法:
所有用到 accumulate 的地方增加头文件:
#include

你可能感兴趣的:(技术资料,Debug)