Visual Studio 2010:扩展/差异

Mat*_* M. 3 c++ visual-studio

Visual Studio 2010具有许多与C++标准相关的扩展(默认激活)/差异.

这种差异可能令人惊讶,并引发与其他行为不同的行为.VS因在模板代码验证方面非常宽松而着名,并且VS接受和编译的模板代码通常会被更兼容的编译器(CLang,Comeau,icc,gcc,......等等)彻底拒绝.

这个问题的目标是为这些差异提供参考(因此FAQ标签).

请根据差异(检查重复)和每个答案提供一个答案:

  • 解释差异
  • 告诉我们是否可以禁用它(如果是,如何)
  • 解释后果(仅仅是拒绝)

注意:C++ 0x是下一个标准,因此请避免列出C++ 0x扩展,因为它们很快就会成为标准

来自@Matteo Italia:Visual Studio合规性页面

Mat*_*lia 6

首先,我将微软与此主题联系起来.

所有Microsoft语言扩展都可以在这里找到; 还有一个页面列出了VC++不符合标准的语言区域.