强制Visual Studio 2012编译器使用C++ TR1(2007标准)

4

是否有可能强制 Visual Studio编译器 按照 2007 C++标准(ISO/IEC TR 19768:2007,C++TR1)编译?

我必须避免在当前项目中使用任何 C++11 特性,即使我们已经使用了2012年的studio。

2个回答

0
如果您有一个并行安装的 VisualStudio 2008,您可以在 VS2012 中使用它的编译器来编译 C++ 项目。这是通过项目设置中的“平台工具集”完成的。

好的,那么我是只需要使用2008编译器还是整个2008工具链(链接器、编译器等)? - nabulke
整个工具链,我想。 - Matz
这可能会非常复杂:所有编译器/链接器参数都必须从2012年翻译并用于2008年...但无论如何,这可能是一个解决方案。 - nabulke
2
您甚至不想费心去关注链接或者代码生成。您只需要基本的/Zs - 检查它是否编译为C++03+TR1即可。对于实际的编译,您可以使用VS2012工具集。 - MSalters

0

根据2007年的C++标准进行编译。

不行。因为VS2012(或2013)并没有完全实现C++07(尽管包含了下一个“C++14”标准的部分内容)。

如果您关心特定的语言或库功能(以及为什么有帮助),您需要指定它们,以获得更具体的答案。


背景:有几家公司正在开展该项目。其中一些公司已经转向2012年,而其他公司仍在使用2008年。因此,如果代码中使用了任何Cx11功能,则会破坏他们的构建。 - nabulke
我认为任何实现了C++11的编译器都能够编译使用C++07编译器可编译的任何源代码。换句话说,C++07包含了C++11的一个子集。我错了吗? - nabulke
1
@nabulke:不,但是Visual Studio的任何版本都从未实现过C++标准的任何版本。始终存在重大遗漏。 - MSalters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接