验证给定C++编译器是否将源代码读取为 C++11 的快速简单代码是什么?



我认为我的编译器理解C++11,但可能不理解。 与其在现有的混乱的源代码上尝试它,不如尝试编译一些简单的"hello world"级别的源代码片段,如果它确实编译没有错误,证明编译器正在将其读取为 C++11?

试试这个,

auto f = [](){};

或者使用右值引用编写一些代码。

尽可能短的东西:

[]{};

Is是一个没有参数列表的lambda表达式。

问题是编译器通常从一开始就不完全支持新标准。这意味着,它们可能支持一个 c++11 功能,但不支持另一个。

但是,就

c++11 而言,我认为 VC++ 是唯一不完全支持它的主要编译器,即使您可能必须手动启用 c++11 模式。例如,对于 g++,您必须提供编译器标志 -std=c++11(或 -std=gnu++11) - 对于较新的版本(如 c++14)也是如此)。

相关内容

最新更新