g ++ erkennt Standard 14 nicht (-std = c ++ 14)

7

Ich bin auf Ubuntu 14.04 und habe g ++ 4.8.5 (Ubuntu 4.8.5-2ubuntu1 ~ 14.04.1). Beim Versuch, -std=c++14Parameter zu verwenden , gibt g ++ Folgendes aus: unrecognized command line option '-std=c++14'

Auch beim Laufen apt-get updateund apt-get upgradeist das Problem immer noch da. Was ist da los?

Adrien Neveu
quelle
Sie könnten wahrscheinlich neuere Versionen von gcc für Ihre Veröffentlichung erhalten. Suchen Sie nach PPAs. Ich bin mir nicht sicher, ob Ubuntu offizielle Backports macht. Andernfalls ist es auch möglich, neuere Versionen von gcc selbst zurück zu portieren.
Faheem Mitha

Antworten:

6

Von der GCC- Website :

Da der endgültige ISO C ++ 14-Standard erst kürzlich veröffentlicht wurde, ist die Unterstützung von GCC experimentell

Um die C ++ 14-Unterstützung zu aktivieren, fügen Sie der g ++ - Befehlszeile den Befehlszeilenparameter -std = c ++ 14 hinzu. Um GNU-Erweiterungen zusätzlich zu C ++ 14-Erweiterungen zu aktivieren, fügen Sie -std = gnu ++ 14 hinzu.

Haben Sie in Ihrem Fall versucht, die -std=gnu14Option anzuzeigen, dass sie funktioniert?

C ++ 14-Funktionen wurden ab GCC 4.8 verfügbar. In Ihrem Fall sollten Sie dies unterstützen.

Auf der g ++ - Manpage habe ich Folgendes gefunden:

c ++ 1y Die nächste Überarbeitung des ISO C ++ - Standards, die vorläufig für 2014 geplant ist. Die Unterstützung ist sehr experimentell und wird sich in zukünftigen Versionen mit ziemlicher Sicherheit auf inkompatible Weise ändern.

gnu ++ 1y GNU-Dialekt von -std = c ++ 1y. Die Unterstützung ist sehr experimentell und wird sich in zukünftigen Versionen mit ziemlicher Sicherheit auf inkompatible Weise ändern.

Es sieht also so aus, als ob die zu verwendende Option möglicherweise nicht vorhanden ist. Probieren Sie c++14es c++1ystattdessen aus.


ps : Ich benutze eine neuere Version als deine und das sind die Optionen, für die ich habeg++

$  g++ --version
g++ (GCC) 4.9.1 20140922 (Red Hat 4.9.1-10)
fduff
quelle
-std=c++1ywird mit GCC 4.8 funktionieren, obwohl die Implementierung natürlich unvollständig sein könnte.
Muru
@fduff: "C ++ 14-Funktionen wurden ab GCC 4.8 verfügbar". Nicht vollständig: C ++ 11 und C ++ 14 werden aufgrund der traurigen Kuhschnur nur von GCC 5 unterstützt. Ich denke, es std::listgibt auch einen weniger kritischen Fehler in früheren Versionen, der sizeO (n) erfordert , aber der Standard sagt, dass es O (1) sein sollte.
user877329