ホームページ > バックエンド開発 > C++ > C 11 がサポートされているにもかかわらず、Visual Studio 2012 の __cplusplus マクロが C 98 互換性を示しているのはなぜですか?

C 11 がサポートされているにもかかわらず、Visual Studio 2012 の __cplusplus マクロが C 98 互換性を示しているのはなぜですか?

DDD
リリース: 2024-11-05 04:36:02
オリジナル
657 人が閲覧しました

Why Does Visual Studio 2012's __cplusplus Macro Still Indicate C  98 Compatibility Despite C  11 Support?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート