【发布时间】:2011-03-17 17:18:47
【问题描述】:
Visual Studio 2010 具有许多与 C++ 标准相关的扩展(默认激活)/差异。
这种差异可能会令人惊讶,并引发与其他行为不同的行为。 VS 以在模板代码验证方面极其松懈而闻名,被 VS 接受和编译的模板代码通常会被更兼容的编译器(CLang、Comeau、icc、gcc 等等)直接拒绝。
这个问题的目的是为这些差异提供参考(因此是 FAQ 标签)。
请为每个差异提供一个答案(检查是否重复)和每个:
- 解释差异
- 告诉我们是否可以禁用此功能(如果可以,如何禁用)
- 解释后果(除了拒绝)
注意:C++0x 是下一个标准,因此请避免列出 C++0x 扩展,因为它们很快就会成为标准
来自@Matteo Italia:Visual Studio Compliance Page
【问题讨论】:
-
您也在寻找错误吗?因为有些bug不是扩展。
-
Visual Studio 是什么版本?
-
您需要指定一个版本。很多人都在发布 VS2010 中不会出现的问题的答案。
-
@DeadMG,@AndreyT:让我们关注VS2010,因为它更合规,早期版本的市场份额应该会逐渐下降。 @James:是的,我也将错误视为差异。它们总是不利于便携性。
-
@Matthieu:如果您想为每个错误和/或一组错误提供答案...我不知道该怎么礼貌地说,但是:需要一个整体很多答案。 :-|
标签: c++ visual-studio