私のコンパイラがC++ 11をサポートしているかどうかを知りたい場合は、__cplusplus
を使用してC++バージョンを知りたい場合は、199711
と表示されます。__cplusplusはMSVCの199711と同等ですが、C++ 11をサポートしていますか?
このバージョン番号は、コンパイラがC++ 11をサポートしていることを意味しますか?
注:私はVisual Studio 2013 v12.0.40629 Update5
を使用しています。
私のコンパイラがC++ 11をサポートしているかどうかを知りたい場合は、__cplusplus
を使用してC++バージョンを知りたい場合は、199711
と表示されます。__cplusplusはMSVCの199711と同等ですが、C++ 11をサポートしていますか?
このバージョン番号は、コンパイラがC++ 11をサポートしていることを意味しますか?
注:私はVisual Studio 2013 v12.0.40629 Update5
を使用しています。
それはMSVC(すなわちその欠けているC++ 11/C++ 14対応)との問題です:
ありませんので、この値はこれまでMSVCなどとして特定のものを意味するものではありません心配している。いくつかのC++ 11の機能は完璧に動作し、失敗するものもあります。そのため、このC++の99-ish値には意味があります。あなたの最善の策は、特定の機能(下記のcxx11tests
のリンクを参照)を確認することです。
さらに詳細:
https://msdn.microsoft.com/pl-pl/library/hh567368.aspx
https://stackoverflow.com/a/27459246/719662
How to Detect if I'm Compiling Code With Visual Studio 2008?
ないデュープリンクされた質問のおそらくhttp://stackoverflow.com/q/14131454/1639256の二倍体。 – Oktalist
特定の言語機能が存在するかどうかをチェックすると、* whole *仕様への準拠を主張するよりも、かなりの成功を収めます。 MSVCはまだC++ 11の全体を実装していないので、 '__cplusplus'のバージョンをバンプすることはできません。 –
/agree Oktalist&@CodyGray - これが、私がhttps://github.com/sloede/cxx11testsとhttps://msdn.microsoft.com/pl-pl/library/hh567368.aspxをリンクした理由です。 IMO C++ 11は、多くのC/C++プラットフォーム(uC/embeddedが含まれています)が完全に*これまで*サポートしていない可能性がある、広範で新しいものです。 – vaxquis