ホームページ  >  記事  >  バックエンド開発  >  C 11 がサポートされているにもかかわらず、Visual Studio 2012 で __cplusplus が 199711L として定義されているのはなぜですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-04 18:51:02253ブラウズ

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

__cplusplus in Visual Studio 2012

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

Background

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

問題

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

解決策

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

以上がC 11 がサポートされているにもかかわらず、Visual Studio 2012 で __cplusplus が 199711L として定義されているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。