さて、私は持っています
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を実行しています。私が見つけたこのエラーに対する他のすべての参照とは異なり、私はnot MinGWを使用しています。Linux(3.11.2)を使用しています。
これが起こっている理由は何ですか?これは標準的な動作ですか?何か間違ったことをしましたか、どこかにバグがありますか?
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
今。
to_stringは、バージョン11などの最新のC++バージョンで動作します。古いバージョンの場合は、この関数を使用してみてください。
#include <string>
#include <sstream>
template <typename T>
std::string ToString(T val)
{
std::stringstream stream;
stream << val;
return stream.str();
}
テンプレートを追加すると、任意のデータ型も使用できます。ここに#include<sstream>
を含める必要があります。