C ++コンパイラをC ++ 11に更新しようとしています。少し検索して、フラグ-std=c++0x
またはを使用する必要があるという結論に達しましたが、フラグ-std=gnu++0x
について多くのことを知りません。誰か助けてもらえますか?(私はUbuntu 12.04を使用しています。)
これは、C ++ 11に含まれているライブラリ(つまり、配列)を使用しようとするとコンパイラーから発生するエラーです。
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
このファイルには、今後のISO C ++標準であるC ++ 0xのコンパイラとライブラリのサポートが必要です。このサポートは現在実験段階であり、-std = c ++ 0xまたは-std = gnu ++ 0xコンパイラオプションで有効にする必要があります。
g++-4.6
デフォルトで出荷されます(これはのみをサポートします-std=c++0x
)
g++
例えば、g++ -std=c++0x _filename_ && ./a.out
。
-std=c++11
代わりに使用する必要があります。たぶん、両方が許可されています。