it-swarm.com.de

"to_string" ist kein Mitglied von "std"?

Okay, das habe ich

tmp.cpp:

#include <string>

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

Aber wenn ich versuche zu kompilieren, erhalte ich:

$ 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);
     ^

Ich verwende g ++ Version 4.8.1. Im Gegensatz zu allen anderen Hinweisen auf diesen Fehler, die ich dort herausgefunden habe, benutze ich nicht MinGW, ich bin unter Linux (3.11.2).

Irgendwelche Ideen, warum das passiert? Ist das Standardverhalten und ich habe etwas falsch gemacht oder gibt es irgendwo einen Fehler?

40
mueslo

sie können die C++ - Version mit angeben

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

Ich habe nicht gcc 4.8.1 zur Hand, aber in älteren Versionen von GCC können Sie verwenden

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

Mindestens gcc 4.9.2, glaube ich, unterstützt auch einen Teil von C++ 14, indem es spezifiziert

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

Update: gcc 5.3.0 (Ich benutze die Cygwin-Version) unterstützt sowohl -std=c++14 und -std=c++17 jetzt.

48
CS Pei

to_string funktioniert mit den neuesten C++ - Versionen wie Version 11. Bei älteren Versionen können Sie versuchen, diese Funktion zu verwenden

#include <string>
#include <sstream>

template <typename T>
std::string ToString(T val)
{
    std::stringstream stream;
    stream << val;
    return stream.str();
}

Durch Hinzufügen einer Vorlage können Sie auch einen beliebigen Datentyp verwenden. Sie müssen #include<sstream> Hier.

20
Lasitha Konara