コードで標準を識別できるように、C++用に事前定義されたマクロはありますか?C++ 11定義済みマクロ
現在、ほとんどのコンパイラは "array"を "tr1"フォルダに置きますが、C++ 11ではSTLの一部になります。だから、現在
#include <tr1/array>
が、C++ 11
#include <array>
は、私が識別するために#ifdef
を使用することができますために、03の標準と11の標準のための定義済みマクロは何ですか?
また、C90とC99のマクロがあるとしますか?
Thanksx
これは、標準とはほとんどを持っている、それは完全にあなたのコンパイラがサポートしているかに依存します。どのコンパイラもバージョン番号を与えるマクロをあらかじめ定義しています。コンパイラーの資料を参照してください。 –
[C++ 0x可用性の決定]の可能な複製(http:// stackoverflow。com/questions/1975616/determine-c0x-availability) –
@Hans Passant:失敗します。 '_ _ cplusplusという名前は、C++翻訳単位をコンパイルするときの値201103Lに定義されています。 '(16.8事前定義されたマクロ名)。 –