so aktivieren Sie c++11 in linux

Wollte ich nutzen unordered_map STL in c++, aber sobald ich den header, es gibt mir diese Fehlermeldung:

Diese Datei erfordert Unterstützung für den compiler-und library-Unterstützung für das ISO-standard C++11. Diese Unterstützung derzeit noch experimentell und muss aktiviert werden, mit -std=c++11 oder -std=gnu++11 compiler-Optionen.

Ich füge meinen code, den ich ausführen wollte, unten. (Alle Eingänge, die auf dem code sind auch willkommen. danke)

#include <iostream>
#include <unordered_map>
using namespace std;

class Node
{
public:
string a,b;
Node()
{
    a="hello";
    b="world";
}
};


int main ()
{
    unordered_map<Node> mymap;
    Node mynode;
    mymap.insert(mynode);
    std::cout << "myrecipe contains:" << std::endl;
  for (auto& x: mymap)
    std::cout << x.a << ": " << x.b << std::endl;

}

Edit: ich habe es zu arbeiten, indem Sie den folgenden Befehl: g++ -std=c++11 [mit dem Namen].cpp

Danke für die Hilfe.

"Diese Unterstützung derzeit noch experimentell und muss aktiviert werden, mit -std=c++11 oder -std=gnu++11 compiler-Optionen." Was ist nicht klar? Beachten Sie, dass dies ist compiler spezifische, und nicht wirklich etwas zu tun haben mit deinem Betriebssystem (vermutlich bist du mit gcc zur Verfügung, die auch auf windows und OSX und ein paar andere Plattformen, IIRC).
Die Frage ist, wie man meinen code zu kompilieren, ohne diese Fehlermeldung? vielen Dank im Voraus.
Die Fehlermeldung enthält die entsprechenden Anleitungen - fügen Sie einfach eine der Optionen (-std=c++11 oder -std=gnu++11) beim kompilieren.

InformationsquelleAutor pyroscepter | 2014-11-16

Schreibe einen Kommentar