45

さて、私は持っています

tmp.cpp:

#include <string>

int main()
{
    std::to_string(0);
    return 0;
}

しかし、コンパイルしようとすると、次のようになります。

$ g++ tmp.cpp -o tmp
tmp.cpp: In function ‘int main()’:
tmp.cpp:5:5: error: ‘to_string’ is not a member of ‘std’
     std::to_string(0);
     ^

g++ バージョン 4.8.1 を実行しています。そこで見つけたこのエラーに関する他のすべての参照とは異なり、私はMinGW を使用しておらず、Linux (3.11.2) を使用しています。

なぜこれが起こっているのですか?これは標準的な動作で、何か間違ったことをしたのでしょうか、それともどこかにバグがありますか?

4

2 に答える 2

53

で C++ のバージョンを指定することもできます

g++ -std=c++11 tmp.cpp -o tmp

手元に gcc 4.8.1 はありませんが、GCC の古いバージョンでは、

g++ -std=c++0x tmp.cpp -o tmp

少なくとも gcc 4.9.2 を指定することで C++14 の一部もサポートしていると思います

g++ -std=c++1y tmp.cpp -o tmp

更新: gcc 5.3.0 (私は cygwin バージョンを使用しています) は両方-std=c++14-std=c++17現在をサポートしています。

于 2013-10-01T17:42:49.200 に答える