当我执行
g++ main.cpp
我得到了输出
main.cpp:9:17: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:10:15: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:11:16: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:12:14: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
main.cpp:13:13: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
现在,如果我跑
g++ -std=c++11 main.cpp
警告消失但我不想明确指定已启用的内容.我犹豫是否要制作一个简单的bash别名,因为如果我记得正确的gcc已经是各种各样的别名.这样做是否安全,或者是否有正确的方法在配置文件或其他东西中修复它?我正在使用默认存储库运行Ubuntu 12.10 x64.
解决方法:
“我不想明确指出已经启用的东西” – 实际上这几乎肯定是能耗最少的方法.将有许多其他可能性,从通过grep -v输出管道到重新编码和重新编译编译器工具链,但它们很可能比仅仅将该标志添加到命令行更难.
而且,如果您担心额外的字符和可能的别名冲突,您可以随时调用您的别名g11或类似的东西.然后你要记住的是使用正确的名称,但任何有脊柱的生物体应该足够先进,足以处理:-)