Visual Studio 2012 __cplusplus と C 11 サポートとの矛盾
Visual Studio 2012 の C 11 サポートが宣伝されているにもかかわらず、矛盾が指摘されています__cplusplus マクロについて。 201103L の期待値を反映する代わりに、C プロジェクト内では引き続き 199711L として定義されます。
考えられる説明
__cplusplus マクロは、コンパイラによって使用される C 標準のバージョン番号。この特定のケースでは、199711L の値は、C 11 より前の「古い」C 標準に対応します。
C 11 ヘッダーへの影響
C 11 の場合でもヘッダーがプロジェクトに含まれている場合、__cplusplus は 199711L として誤って定義されたままになります。この不一致は、コードと C 11 標準間の互換性に関する潜在的な問題を引き起こす可能性があります。
既知のバグ
この問題は Microsoft によって認識されており、バグ レポートが作成されています。ファイルされています (事前定義マクロ __cplusplus の値は 199711L のままです)。したがって、将来のアップデートで対処される予定です。
以上がC 11 がサポートされているにもかかわらず、Visual Studio 2012 の __cplusplus マクロが C 98 互換性を示しているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。