Найдя https://devblogs.microsoft.com/cppblog/broken-warnings-theory/, мы опробовали его в надежде сфокусировать наше построение / Analyze на поиске проблем в нашем собственном коде. Мы использовали c /analyze /analyze:stacksize131072 /analyze:WX- /experimental:external /external:anglebrackets /external:W0
в наших вызовах компилятора, но обнаружили, что это вызвало множество предупреждений = ошибок из Windows заголовочных файлов Kit. например,
c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared\rpc.h(65): error C2220: warning treated as error - no 'object' file generated
c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared\rpc.h(65): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared\rpc.h(223): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared\rpcndr.h(47): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared\rpcndr.h(3300): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop)
Как мы можем избежать этих ошибок? Они прямо противоречат всей сути «внешних» вариантов.