Forum: Compiler & IDEs gcc 4.8.1 C++11 Support


von Haro (Gast)


Lesenswert?

Morgen zusammen,

ich verwende hier einen gcc 4.8.1 unter Linux Mint.
Der Compiler sollte ja C++1 "Feature Complete" sein.
Ich gebe dem Compiler beim Aufruf "std=c11" mit um C++11 zu aktivieren.

Problem: Kompilieren klappt nicht, weil einige Elemente der STL (zB 
unique Pointer) nicht bekannt sind.

Ein Blick in die Header (<memory>) zeigt, dass "__cplusplus" auf >= 
201103L definiert sein muss.
Wenn ich mir das Makro ausgeben lasse erhalte ich den Wert "199711". So 
kanns natürlich nicht klappen.
Wie bringe ich also g++ dazu, das Makro auf 201103L zu setzen?

Recherchen haben ergeben dass es diesbezüglich mal einen Bug (eher 
Kompatiblitätsproblem mit Solaris) gab, wodurch __cplusplus auf 1 
gesetzt wurde. Dieser sollte aber seit 4.7.0 behoben sein.
Außerdem wirds bei mir ja nicht auf 1 gesetzt, sondern eben auf 199711. 
Solch ein Problem konnte ich beim gcc nicht finden. Microsofts Compiler 
hatte da mal was, aber den benutze ich ja nicht.

Kann mir da wer helfen?

von Marius W. (mw1987)


Lesenswert?

std=c++11

von Dr. Sommer (Gast)


Lesenswert?

C11 ist C! Für C++11 brauchst du -std=c++11 . Klappt bei mir unter Mint 
wunderbar ;-)

von Haro (Gast)


Lesenswert?

Betriebsblindheit...

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.