如何定义-std=c++;11作为g+中的默认值+; 我在C++程序中使用一些特性,我需要代码> -STD= C++ 11 < /Cord>选项,设置在G++< /P>

如何定义-std=c++;11作为g+中的默认值+; 我在C++程序中使用一些特性,我需要代码> -STD= C++ 11 < /Cord>选项,设置在G++< /P>,c++,class,constructor,derived-class,C++,Class,Constructor,Derived Class,是否可以将此选项设置为默认值,而不必在编译时一直使用此选项 或者如何在Makefile中进行设置。是的,通常在Makefile中进行设置: CXXFLAGS=-std=c++11 在上面的一层,您还可以通过autoconf、cmake或您可能部署的任何其他元构建工具来检测合适的编译器 当然,您可以将游戏定义为g++11为g++-std=c++11,但这样的设置是不可移植的 g++-6.*将默认为c++14,因此在某些情况下,此开关将是隐式的。但是,可能需要很长一段时间才能让所有带有g++-4

是否可以将此选项设置为默认值,而不必在编译时一直使用此选项


或者如何在Makefile中进行设置。

是的,通常在Makefile中进行设置:

CXXFLAGS=-std=c++11 
在上面的一层,您还可以通过
autoconf
cmake
或您可能部署的任何其他元构建工具来检测合适的编译器

当然,您可以将游戏定义为
g++11
g++-std=c++11
,但这样的设置是不可移植的


g++-6.*将默认为c++14,因此在某些情况下,此开关将是隐式的。但是,可能需要很长一段时间才能让所有带有g++-4.4.*的RHEL和CentOS boxen消失。这些甚至可能无法处理您当前的项目…

是的,升级到GCC 6.1:

C++前端现在默认为C++ 14标准而不是C++ 98 < /P>


中,您可以让一个makefile按如下方式执行此操作(这是一个没有变量的简单版本)


使用您选择的构建系统。可以是
make
SCons
CMake
qmake
或其他内容,并设置所需选项。需要30秒,你就完成了


或者,将您的编译器升级到默认使用C++11的版本。

cxflags
中设置它,它必须完全是C++11还是一个新的标准也被接受?不完全是,我使用
-std=C++11
以避免在这样的指令上出现错误:
x={0,4}
这个问题专门询问了
-std=c++11
,这可能意味着OP想要的是c++11,而不是c++14。
out: source.cpp
    g++ -std=c++11 source.cpp -o out