プログラミング言語が進化する時代では、特定の言語機能との互換性を確保することが重要になります。 C 11 は C の重要なアップグレードであり、多数の新機能が導入されました。この記事では、コンパイラがコンパイル中に C 11 の特定の側面をサポートしているかどうかを確認する方法について説明します。
C 標準では、サポートされる C バージョンを指定する __cplusplus という定数が定義されています。その値を比較することで、開発者はコンパイラと互換性のある C 構文のレベルと機能を判断できます。
たとえば、コンパイラが C 11 をサポートしているかどうかを確認するには、次のコードを使用できます。
#if __cplusplus <= 199711L #error "Your compiler doesn't support C++11." #else // Code that requires C++11 features #endif
このスニペットは、__cplusplus 値が 199711L 未満の場合にコンパイル エラーをスローし、コンパイラが C をサポートしていないことを示します。 11.
__cplusplus 定数はコンパイラ サポートの一般的な指標を提供しますが、特定の C 11 機能の可用性を正確に反映していない可能性があります。たとえば、コンパイラが C 11 サポートを主張している場合でも、標準のすべての側面を実装しているわけではない可能性があります。
そのような場合、他のメカニズムを利用する必要があります。たとえば、Boost ライブラリは、開発者が特定の機能のサポートを検出できるようにする C 11 関連のマクロと定義を提供します。これらのマクロは、必要な機能が利用可能な場合にのみコードが実行されるようにし、コンパイル エラーや実行時例外を防ぎます。
以上がコンパイル時に C 11 コンパイラのサポートを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。