2011-06-02 29 views

回答

6

它们都以C++ 03为目标,是的。但他们也都有不符合标准的领域。 (GCC也是如此,顺便说一句,任何一边的球迷都会在嘴边开始发泡)。

但请记住,C++ 03基本上是一个非常小的修补程序发行版,可以确定合理的编译器无论如何都会做的一些“常识”事情(例如,在C++ 98中,严格来说,可能有不连续地分配向量。C++ 03禁止这一点,但每一个理智的编译器厂商会用连续的载体反正,因为这是矢量打算什么)

GCC没有按”甚至没有C++ 03标准设置。你告诉它的目标是C++ 98(与std=c++98),它实际上是以C++ 03为目标的),我不知道编译器实际上是在区分这两者,因为这些变化很少,而且很明显

+0

@jalf:刚注意到你删除了对我的答案的查询评论,我引用了什么不正确的? – 2011-06-02 08:19:02

+0

事实上,他们首先希望将C++ 03作为一个TC,但最终因为某种形式而最终成为新的IIRC标准版本。 – 2011-06-02 08:20:00

+0

[这是MSVC2008非标准功能的列表](http://msdn.microsoft.com/en-us/library/x84h5b78%28v=vs.90%29.aspx)。我没有找到类似的GCC,你能提供吗? (不是“fanboying”我只是诚实地好奇它) – 2011-06-02 08:29:20

1

是,VS2005 & VS2008均遵循C++03。他们确实支持C++0x的一些功能,但它们并不完全符合C++0x,很可能没有一个编译器是在最终规范发布之后的一刻。 GCC目前比任何其他编译器都支持C++0x

C++ 0x尚未发布。最终规范预计将在2011年中期发布。你应该看到this

+0

这是一个有点误导,最终草案已经完成,这意味着这个标准将不会有任何变化,直到实际的标准化是政治还剩下什么 – 2011-06-02 08:08:49

0

是的,他们都遵循C++ 03。 VS2010有一些C++ 0x功能。目前最完整的功能支持由GCC提供。

+0

另外一个注意事项是C++ 0x已经正式发布了吗? – 2011-06-02 08:05:44

+0

这是Visual Studio 9和10中提供的具有C++ 0x功能的表格http://blogs.msdn.com/b/vcblog/archive/2010/04/06/c-0x-core-language-features-in -vc10-the-table.aspx – 2011-06-02 08:06:33

+2

@Gunner:nope。委员会已经制定了最终草案,即将由ISO成员国进行表决。今年晚些时候,选票应该在,ISO需要一个月的时间或两个来在它周围绑上一条丝带,然后将所有东西都包起来,然后它将正式出版。 – jalf 2011-06-02 08:13:03