gpt4 book ai didi

c++ - 是否可以修复 Windows 头文件(winnt.h、windefs.h)以便它们可以用/Za 编译?

转载 作者:可可西里 更新时间:2023-11-01 10:54:41 25 4
gpt4 key购买 nike

我正在为多个平台(Windows、Linux、Mac OS X)开发应用程序,我想确保我的代码符合 ISO C++ 标准。在 Linux 和 Mac 上,它是通过 -pedantic-errors 标志实现的,在 Windows 上是通过 /Za 标志(禁用语言扩展)实现的。问题是,某些 Windows header 不符合 C++(并且以一种愚蠢的方式,没有什么大不了的 - 大多数错误是 '$' : unexpected in macro definition, '__forceinline' not permitted on数据声明 和类似的废话)。您认为可以修复 header 吗?有人试过吗?

最佳答案

不,这是不可能的。有关 Clang 开发人员邮件列表上由 STL(这个人,而不是首字母缩写词)发起的关于此事的精彩讨论,请参阅 here .

也就是说,如果您想编写符合标准的代码,我建议使用 MinGW-w64 GCC在 Windows 上,它提供了自己的 Win32 API header ,可以使用 -std=c++11 -pedantic -Wall -Wextra 进行编译。我什至可以offer you Clang 3.2 .它只是 32 位的,依赖于 GCC 4.6 的 libstdc++,但它们相处得很好。我在家里的电脑上安装了 Clang 3.3,但 libstdc++ 和 Clang 在一些可变参数模板链接问题上存在分歧,所以我没有上传它。

关于c++ - 是否可以修复 Windows 头文件(winnt.h、windefs.h)以便它们可以用/Za 编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19831876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com