gcc 4.8.1 C++11 Support

Gast #3567219
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?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.