tow*_*owi 46 c++ gcc c++11 gcc4.8
目前,使用g ++ - 4.8.1,您必须通过C++ 11模式编译文件
g++ -std=c++11 -o prog.x prog.cpp
Run Code Online (Sandbox Code Playgroud)
我可以说,是否有计划?
g++ -o prog.x prog.cpp
Run Code Online (Sandbox Code Playgroud)
编译prog.cpp?
也许prog.cpp有
#include <regex>thread_localclass Widget { int member = 5; }MyType operator"" myt(const char*, sze_t);小智 20
我能得到的答案最接近的是info gcc命令:
修订后的ISO C++标准于2011年作为ISO/IEC 14882:2011发布,被称为C++ 11; 在它发布之前,它通常被称为C++ 0x.C++ 11包含对C++语言的一些更改,其中大部分已在GCC中以实验性C++ 11模式实现.有关实验C++ 11模式中可用的C++ 11功能的信息,请参阅 http://gcc.gnu.org/projects/cxx0x.html.要在GCC中选择此标准,请使用选项'-std = c ++ 11'; 要获得标准所需的所有诊断,您还应指定'-pedantic'(或'-pedantic-errors',如果您希望它们是错误而不是警告).
该http://gcc.gnu.org/projects/cxx0x.html页说:
重要提示:GCC对C++ 11的支持仍然是实验性的.某些功能是基于早期提议实现的,并且在更新它们以匹配最终的C++ 11标准时,不会尝试保持向后兼容性.
的的libstdc ++页面还显示,这是不完整的.(我甚至认为regex尚未实施.)
Steve Jessop的答案基本上在最后一段中说了同样的内容,但引用他答案的第一部分:
C++ 11已经标准化了几年,但是编译器不会将其默认模式切换到C++ 11,直到:
- 绝对最低限度,C++ 11支持在该编译器及其使用的库中完成.如果编译器编写者对可靠性有任何顾虑,那么它也是稳定的.
- 优选地,编译器中的主要版本号增加,因为C++ 11不完全向后兼容C++ 03.
- 理想情况下,在众所周知的时间表上,以便用户可以为变化做好准备.
Ali*_*Ali 13
更新:原来的答案在过去28个月已经过时.根据nobar的回答,GCC 6.1默认支持带有GNU扩展的C++ 14.GCC 6.1于2016年4月27日发布.我很惊讶但很高兴看到新标准的快速采用!
至于原始答案的其余部分,我仍然看到保持该部分的价值,以回答如何使某些标志"默认".所以我把它放在下面.
有什么计划,我只能说[...]
你可以在Makefile中定义默认标志,然后你要说的就是make.
接受的答案如何在gcc中启用C++ 11?应该让你入门(或一些makefile教程).
Stackoverflow中经常出现的另一个建议是添加一个bash别名alias g++="g++ --std=c++0x",请参见此处.但是,我本人不会这样做,它会导致令人不快的意外; C++ 11已经发生了重大变化.我会创建自己的makefile并简单输入make.
| 归档时间: |
|
| 查看次数: |
22690 次 |
| 最近记录: |