Visual Studio 2008(或更高版本)使用哪种C ++?

时间:2009-12-08 08:39:36

标签: c++ visual-studio-2008 visual-studio-2010

我发现C ++在微软世界中是一种非常有争议的语言。默认情况下,我们有ISO C ++,然后microsoft有Managed C++,现在有C++ CLI

我只知道标准(ISO)C ++。我不知道微软的C ++版本。

我对visual studio 2008(或更高版本)对任何c ++代码的解释感到困惑。这就是为什么我使用gnu工具来编译我的程序。但我确实喜欢Visual Studio。

如果我只想使用

,我需要进行哪些设置
  1. STRICTLY ISO C ++
  2. 托管C ++(已弃用,但我认为为了向后兼容,他们仍然支持它)
  3. C ++ CLI(适用于.NET平台)
  4. 我想使用C ++而不是托管组件构建本机程序集。那么,我还需要做什么吗?

2 个答案:

答案 0 :(得分:7)

所有内容都在构建设置中:

公共语言运行时支持(/ clr) - 添加或删除CLR支持

高级编译为C ++代码(/ TP) - 选择c ++或c ..

语言:禁用语言扩展 - 使用此方法强制ANSI。

答案 1 :(得分:0)

当您要求Visual Studio制作C ++项目时,它会创建一个C ++项目。 C ++ / CLI是一种不同的语言。

VS2008及更早版本已经实现了C ++ 03(或者近似它。与几乎所有其他编译器一样,标准中有些内容没有被遵循。有些功能没有实现(异常规范,{{ 1}}关键字或两阶段名称查找是我能想到的),并且还添加了一些专有扩展。

GCC和大多数大型编译器完全相同,所以这不是微软这样“邪恶”的情况。可以禁用扩展,为您提供合理的符合标准的编译器。

VC2010正在添加许多C ++ 0x功能(至少在测试版中,我还没有找到禁用这些功能的选项),所以从严格的C ++ 03合规性角度来看,它会变得不那么顺从。

Dani的回答已经告诉您要更改哪些设置以启用/禁用不同的语言方言。