Raspbian G++8.3.0使用lambda表达式会导致预期的主表达式出现在“]”之前,即使标准设置为c++14 我目前正在Raspberry Pi的C++项目上工作。 我使用的是最新的Raspbian版本,并安装了G++工具链8.3.0 armhf
当通过我的PC交叉编译相同的代码时,一切正常,我甚至可以使用我的Pi上的以下函数执行测试代码。 然而,当在我的Pi上编译时,编译器拒绝构建我的项目 错误是 Extensions.hpp:65:75:错误:在']'标记之前应该有主表达式 所讨论的问题如下:Raspbian G++8.3.0使用lambda表达式会导致预期的主表达式出现在“]”之前,即使标准设置为c++14 我目前正在Raspberry Pi的C++项目上工作。 我使用的是最新的Raspbian版本,并安装了G++工具链8.3.0 armhf,c++,C++,当通过我的PC交叉编译相同的代码时,一切正常,我甚至可以使用我的Pi上的以下函数执行测试代码。 然而,当在我的Pi上编译时,编译器拒绝构建我的项目 错误是 Extensions.hpp:65:75:错误:在']'标记之前应该有主表达式 所讨论的问题如下: transform(mixedCase.begin(), mixedCase.end(), mixedCase.begin() [&](uint8_t _char) { return tolower(_char); });
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自由软件基金会,Inc.
这是自由软件;有关复制条件,请参见源。没有
担保甚至不是为了适销性或适合某一特定目的
我正在使用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上编译时是否出于某种原因不支持使用lambdas?
除了依赖函数对象之外,还有其他方法吗?转换需要四个参数,在lambda之前忘记了一个逗号 lambda之前的逗号缺失,lambda是另一个参数。谢谢你指出这一点。这就是我使用nano所得到的。投票赞成接近。