Windowsヘッダーの侵入的な#definesに対処する最良の方法は何ですか? 名前空間にあるかどうかに関係なく、同じ名前のシンボルを本当に定義する必要がある場合、エラーが発生する傾向があります。一部の定義は WIN32_LEAN_AND_MEAN で回避できることはわかっていますが、すべてではありません。この特定のケースでは、WinNT.h#6478 で "DELETE" 定義をヒットしています。このような非常に一般的なキーワードがたくさんあります。
私の当面の考えは、定数を宣言する前に #undef を実行することですが、それは非常に洗練されていない解決策です。定数はテキスト文字列に直接変換されるため、定数の名前を簡単に変更することはできません。現在の定数を正確に変更する必要があります。
頭に浮かぶ他の定義は、windowsx.h の GetFirstChild/GetNextSibling です...本当に?