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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren