プリプロセッサディレクティブを使用してC++標準ライブラリにC++ 11サポートがあるかどうかを調べることはできますか?C++ 11標準ライブラリを検出するプリプロセッサディレクティブはありますか?
私は現在、C++ 11言語の方言を使用していますが、C++ 11標準のサポートなしのC++標準ライブラリを使用しています(非C++ 11とリンクできるようにするために必要ですライブラリ)。
私は#if __cplusplus >= 201103L
を使ってC++ 11のサポートをテストできることを知っていますが、私の場合はこれが真と評価されます。私はC++ 11のC++標準ライブラリのサポートについて知っておく必要があります。
関連:http://stackoverflow.com/q/11886288/743214 –
* "#if __cplusplus> = 201103L" * - Noを使用してC++ 11のサポートをテストできることを知っています、そうではありません。ほとんどのコンパイラではC++ 11のサブセットしかサポートされていませんが、サブセットは大きくても問題ありませんが、この '__cplusplus'マクロはまったく役に立ちません。標準的な機能(言語やライブラリであるかどうか)を移植可能なものとしてテストすることはまだ解決されていません(TemplateRex *が答えているように、*解決しようとしています)。 –
私には、CMakeやautotoolsのような設定ツールが必要なような問題があります。彼らはあなたをチェックし、あなたが評価できるマクロを含むヘッダーを生成します。ライブラリのみの場合は、マクロを提供するようにユーザーに依頼することができますが、それでも解決方法は貧弱です。 – usr1234567