使用 lambda 表达式的 Raspbian G++ 8.3.0 导致 ']' 之前的预期主表达式 - 即使标准设置为 c++14
Raspbian G++ 8.3.0 using lambda expression causes Expected primary expression before ']' - even though standard is set to 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之前忘记了一个逗号。
相关文章:
- (C++)分析树以计算返回错误值的简单算术表达式
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 提升精神:解析布尔表达式并简化为规范范式
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 枚举环境变量的惯用C++14/C++17方法
- 使用正则表达式regex_search在字符串中查找字符串
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 概念中的cv限定符需要表达式参数列表
- 为什么constexpr的性能比正常表达式差
- 对于结构,表达式必须是可修改的ivalue
- 当一个值是非常量但用常量表达式初始化时使用constexpr
- 使用 lambda 表达式的 Raspbian G++ 8.3.0 导致 ']' 之前的预期主表达式 - 即使标准设置为 c++14
- 在 C++ 中使用带有正则表达式的 G++ 和 Visual Studio 14 2015 编译器时会产生不同的结果
- 折叠表达式是C++14还是C++1z特性
- C++14:使用三元表达式从 constexpr 推导(自动)返回类型
- 捕获并移动 c++14 lambda 表达式中的unique_ptr
- 在 C++14 模式下为 libstdc++ 编译 clang 正则表达式程序会导致错误
- Lambda表达式作为C++14中的类模板参数
- c++ 14是否要求delete表达式必须调用' void operator::delete(void*, std::
- 无法在VS 14 CTP中使用auto声明lambda:类型为'void'的条件表达式是非法的