我正在试验标题单元。目前,我正在Visual Studio 2022(Version 17.2.3)中进行测试。
我正在导入多个标头单元,例如
import <windows.h>;
import <thread>;
warning C4005: '__analysis_assume': macro redefinition 1>C:Program Files (x86)Windows Kits10Include10.0.22621.0sharedspecstrings_strict.h(933): message : see previous definition of '__analysis_assume'
这是有意义的,因为如果<thread>
和<windows.h>
有任何共享的头,通常包含保护或pragma会阻止它们被包含和被多次定义。
我真的不确定头单元如何工作,如果他们与宏共享头文件,大多数外部库的头文件使用。
我确信我可以忽略这个警告,但我很好奇其他人是否有更好的解决方案。
这似乎是使用windows.h时导入导致多个宏重新定义的已知问题。https://developercommunity.visualstudio.com/t/warning-C4005: -Outptr: -macro-redefinit/1546919
我们将不得不等待微软解决这个问题。