【发布时间】:2012-01-23 18:33:02
【问题描述】:
使用 Eclipse 构建时,会收到有关 c++0x 关键字的警告和错误。示例:
标识符 ‘decltype’ 将成为 C++0x 中的关键字
如何解决?
编辑:
Project->Properties->C/C++ Build->Discovery options->GCC C++ 编译器->编译器调用参数->[-E -P -v -dD ${plugin_state_location}/specs.c --std=gnu++0x]
但它没有效果,有趣的是,即使把空字符串放在那里,它也会尝试编译时出现相同的错误。不知道这个参数需要什么(
【问题讨论】:
-
你真的在尝试用 C++11 编译吗?
-
你用的是什么工具链 gcc?如果是这样,您需要传递一个标志来启用 c++0x 功能。 -std=c++0x 或 -std=gnu++0x
-
@ted,当前工具链:Linux GCC。
-
decltype 是一个 C++0x 扩展,GCC 尚未完全支持。它是一个接受表达式并返回类型的运算符。 我从这里 stackoverflow.com/questions/2763824/… 拿来这个,试图看看它是否过时
-
根据gcc.gnu.org/projects/cxx0x.html,它应该在 gcc >= 4.3 中实现(参见表达式的声明类型)
标签: c++ eclipse compilation c++11