是否有GCC编译指示可以打开和关闭C ++ 11?

时间:2015-12-14 22:02:05

标签: c++ c++11 gcc

我有一些与C ++ 11斗争的标题,但我想在我的代码中使用初始化列表等功能。我的研究表明,您只能在命令行启用更新的功能,例如:

g++ -std=c++11

我真正喜欢的是放入我的代码:

#pragma CXX11_OFF
#include <old.hpp>
#pragma CXX11_ON

vector<int> v {1,2,3};

我还没有找到这样一个pragma。它存在吗?

4 个答案:

答案 0 :(得分:8)

没有。这样的pragma不存在。

您可以在§ 6.61 of the manual中找到GCC支持的所有编译指示的列表。

答案 1 :(得分:1)

我不知道是否存在这样一个pragma。但是在同一个编译单元中打开和关闭C ++ 11看起来很尴尬。也许你应该放置&#34; old&#34;在一个dll内部,然后将其导入&#34; new&#34;部分。然后,您只能在启用c ++ 11的情况下编译新部件

答案 2 :(得分:1)

#pragma GCC diagnostic warning "-std=c++11"

此行向编译器添加cpp 11标志。

答案 3 :(得分:0)

由于这种编译指示不存在,我的建议是依靠make / cmake来选择&#34; right&#34;基于编译标志的文件。