【发布时间】:2011-03-30 16:40:53
【问题描述】:
我想禁用语言扩展以便能够在我的项目中进行一些测试。我发现我必须从http://msdn.microsoft.com/en-us/library/0k0w269d.aspx 设置/Za 编译器指令,但是在此之后如果我包含Windows 头文件就会出错。有没有办法在 VS2010 中编写符合标准的代码(由编译器强制执行,而不是由其他程序员/代码审查)并且仍然使用系统头文件?
谢谢!
【问题讨论】:
我想禁用语言扩展以便能够在我的项目中进行一些测试。我发现我必须从http://msdn.microsoft.com/en-us/library/0k0w269d.aspx 设置/Za 编译器指令,但是在此之后如果我包含Windows 头文件就会出错。有没有办法在 VS2010 中编写符合标准的代码(由编译器强制执行,而不是由其他程序员/代码审查)并且仍然使用系统头文件?
谢谢!
【问题讨论】:
windows 头文件从未使用 /Za 编译。
/Za 还存在其他问题,导致 Microsoft 停止使用该选项测试其 C++ 标准库。如此处所述:
http://permalink.gmane.org/gmane.comp.lib.boost.devel/212180
建议不要在“真实”代码中使用它。
【讨论】:
将您对<windows.h> 的使用隔离到您不使用/Za 编译的源文件中,并在其他文件上使用该参数。
【讨论】: