2012-02-14 8 views
3

私はicpc(オプションではない)を使用していますが、-std = C++ 0xでコンパイルしていますので、lambasを使用できます。icpc gcc stdlibを持つC++ 11

しかし私がそうするとき、それはgcc stdlibでhavokを作成し、他のものはサポートしないという特徴を持っています。

私は

__GXX_EXPERIMENTAL_CXX0X__ 

を定義しようとしたが、それは助けにはなりませんでした。

私が求めているのは、C++ 0xの言語機能をC++ 03のstdlibで使用できることです。

GCC 4.6

ICC 12.1]エラーの

EDIT例:

/usr/include/c++/4.6.2/type_traits(74): error: identifier "constexpr" is undefined 
    static constexpr _Tp     value = __v; 
     ^

/usr/include/c++/4.6.2/type_traits(74): error: expected a ";" 
     static constexpr _Tp     value = __v; 
             ^

/usr/include/c++/4.6.2/type_traits(75): error: member "std::integral_constant<_Tp,  __v>::_Tp" is not a type name 
    typedef _Tp       value_type; 
      ^

/usr/include/c++/4.6.2/type_traits(76): error: member "std::integral_constant<_Tp,  __v>::_Tp" is not a type name 
     typedef integral_constant<_Tp, __v> type; 
          ^

/usr/include/c++/4.6.2/type_traits(77): error: identifier "constexpr" is undefined 
     constexpr operator value_type() { return value; } 
     ^

/usr/include/c++/4.6.2/type_traits(87): error: identifier "constexpr" is undefined 
     constexpr _Tp integral_constant<_Tp, __v>::value; 
+0

"icpc"とは何ですか? –

+0

"icpc"は、インテルコンパイラを実行するコマンドです。 g ++によく似ています。 –

+0

icpcはインテル®C++コンパイラーを呼び出すコマンドです。異なるOS用の非常に良い最適化コンパイラです。 – mikithskegg

答えて

2

エラーが明らかに、C++ 11のコードを指します。

ただし、ICCが-std=c++0xの下でこれを定義している場合は、使用するライブラリのバージョンを確認するか、ローカルICCインストールでライブラリを探してください。確かに、C++ 11のコードをコンパイルするには、C++ 03ライブラリで十分です。

+0

魅力を、ありがとう。 – 111111

0

icpcは、このような状況で警告します。これに注意を払わないでください。すべてがコンパイルされます。それはは、このような-U__GXX_EXPERIMENTAL_CXX0X__(等価GCCオプション)と同様にそのいずれかを、見てからコンパイラを防ぐためにあなたがしたいように聞こえるよう

+0

いいえ、エラーはありません。私はそのような例を編集に追加しました。 – 111111

関連する問題