「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ 11 がサポートされているにもかかわらず、Visual Studio 2012 で __cplusplus が 199711L として定義されているのはなぜですか?

C++ 11 がサポートされているにもかかわらず、Visual Studio 2012 で __cplusplus が 199711L として定義されているのはなぜですか?

2025 年 1 月 18 日に公開
ブラウズ:652

Visual Studio 2012 の

Why is __cplusplus defined as 199711L in Visual Studio 2012 despite C   11 support?

__cplusplus

Visual Studio 2012 では、__cplusplus が 199711L として定義されており、「古い」ことを示していることに一部の開発者が気づいています。 VS 2012 には C 11 が含まれているにもかかわらず、C 標準support.

Background

__cplusplus マクロは、Visual Studio でサポートされている C 標準のバージョンを提供するプリプロセッサ マクロです。値 199711L は C 98 標準に対応し、201103L は C 11 サポートを示します。

Issue

Visual Studio 2012 では、C 11 ヘッダーが含まれている場合でも、__cplusplus は依然として誤って 199711L として定義されています。これは、C 標準のバージョンを区別するために __cplusplus マクロに依存するコードでは問題となる可能性があります。

解決策

この問題は検討のために Microsoft に報告されています。 「事前定義マクロ __cplusplus の値はまだ 199711L です。」というタイトルの下に表示されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3