使用 lambda 表达式的 Raspbian G++ 8.3.0 导致 ']' 之前的预期主表达式 - 即使标准设置为 c++14



我目前正在我的树莓派上做一个C++项目。 我使用的是最新的 Raspbian 版本并安装了 G++ 工具链(8.3.0 armhf(。

通过我的 PC 交叉编译相同的代码时,一切正常,我甚至可以使用我的 Pi 上的以下函数执行测试代码。 但是,在我的 Pi 上编译时,编译器拒绝构建我的项目。

错误是

扩展.hpp:65:75:错误:"]"标记之前的预期主表达式

有问题的行如下:

transform(mixedCase.begin(), mixedCase.end(), mixedCase.begin() [&](uint8_t _char) { return tolower(_char); });
^ error occurs here

它本身在内联函数中。 这是我使用的确切编译器版本:

c++ (Raspbian 8.3.0-6+rpi1( 8.3.0 版权所有 (C( 2018 自由软件基金会。 这是免费软件;有关复制条件,请参阅源。 没有 保证;甚至不是为了适销性或适合特定目的。

我正在使用CMake和Makefile进行构建,两者都会产生完全相同的错误消息。 以下是标准用途的 CMake 配置:

###
# Set language version
###
set(CMAKE_CXX_VERSION 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Enable GNU extensions
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS ON)

由于某种原因,在 Raspi 上编译时使用 lambda 是否不受支持? 除了依赖函数对象之外,还有其他方法吗?

变换需要四个参数,你在lambda之前忘记了一个逗号。

相关内容

最新更新