Verwendete C++-Version herausfinden

Gast #5767457
Lesenswert?
• ▲
▼
Hallo,
als Hausarbeit soll ich eine Software schreiben und die verwendeten 
Standards angeben. Die Compilerversion habe ich schon herausgefunden.

Nun fehlt mir noch die verwendete C++-Version.
Gibt es unter Linux einen Befehl, der mir sagt, welches C++ von g++ 
verwendet wird?

Falls noch weitere Infos benötigt werden bitte einfach posten!
Gast #5767558
Lesenswert?
• ▲
▼
Der Compiler selbst wird mehrere Standards unterstützen. Du musst 
entscheiden wie du programmieren willst.

Z.B. mit dem "-std=c++11"-Flag wählst du die Unterstützung für den 
C++11-Standard.
Gast #5767585
Lesenswert?
• ▲
▼
Schon mal vielen Dank für die Antwort!

zitter_ned_aso schrieb:
> Der Compiler selbst wird mehrere Standards unterstützen. Du musst
> entscheiden wie du programmieren willst.

Wird dann standardmäßig ein bestimmter Standard verwendet und kann man 
diesen herausfinden?

Ich kompiliere bspw einfach mit
1
g++ test.cpp -lode -ldrawstuff -lGL -lGLU -lglut -lpthread -lX11
(Firma: www.elpra.de) Persönliche Seite #5767594
Lesenswert?
• ▲
▼
Schau einfach mal via
1
man g++

iim Abschnitt -std= nach. Da findest welcher Standart der Default ist, 
z.B.:
1
gnu11
2
gnu1x
3
    GNU dialect of ISO C11.  The name gnu1x is deprecated.
4

5
gnu17
6
gnu18
7
    GNU dialect of ISO C17.  This is the default for C code.
8

9
c++98
10
c++03
11
    The 1998 ISO C++ standard plus the 2003 technical corrigendum and some additional defect reports. Same as -ansi for C++ code.
Gast #5767600
Lesenswert?
• ▲
▼
1) Makrowert von __cplusplus anzeigen lassen
1
std::cout << __cplusplus << std::endl;
Quelle: 
https://stackoverflow.com/questions/46980383/how-to-determine-what-c-standard-is-the-default-for-a-c-compiler


2) Dann kannst du hier prüfen für welchen Standard diese Zahl steht:


1
...the value of the macro is 199711L for the 1998 C++ standard, 201103L for the 2011 C++ standard, 201402L for the 2014 C++ standard, 201703L for the 2017 C++ standard, or an unspecified value strictly larger than 201703L for the experimental languages enabled by -std=c++2a and -std=gnu++2a.

Quelle: 
http://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html

(  Punkt 0): Lernen google zu benutzen ;-) )
Gast #5768246
Lesenswert?
• ▲
▼
@DPA

Wie gehst du vor, wenn du Mathe-Konstanten (PI, etc) brauchst? Bei 
"-std=gnu..." sind solche Zahlen ja dabei.

Gibt es da eine elegante Lösung für dieses Problem? (außer alles selbst 
zu definieren)

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.