Welche Version von C ++ verwende ich?

8

Momentan verwende ich C ++ in Windows-Umgebung. Ich verwende Visual Studio 2008 mit Service Pack 1.

Ich habe nie über die C ++ - Version nachgedacht, außer bis ich über C++11 Bescheid wusste. Es scheint verschiedene Versionen wie ANSI-Standard, C ++ 98 Standard usw. zu geben.

  1. Wie kann ich herausfinden, welche Version von C ++ ich verwende?

  2. Wenn ich Visual Studio nicht habe, weiß ich, dass ich andere Compiler wie TC benutzen kann, um meinen C ++ Code zu kompilieren. Wie kann ich in diesem Fall erfahren, welche Version von C ++ der Compiler verwendet?

  3. Sind die Änderungen in aufeinanderfolgenden C ++ - Versionen über Programmierkonzepte oder nur im Sprachdesign gemacht?

Rajesh Subramanian 15.02.2012, 03:28
quelle

2 Antworten

8

Es ist nicht so einfach wie eine Versionsprüfung.

Jeder Compiler, der C ++ 11 unterstützt, unterstützt eine andere Untergruppe von C ++ 11. Kein Compiler bewirbt aus offensichtlichen Gründen die vollständige Einhaltung von C ++ 11.

Die C ++ 11-Spezifikation erfordert, dass ein vordefiniertes Makro, __cplusplus definiert wird, das den Wert 201103L hat. Sie können sich jedoch nicht nur auf dieses Makro verlassen. Nicht in echtem Code.

Sie müssen sich stattdessen auf Compiler-spezifische Makros verlassen, um festzustellen, wann der Compiler und welche Version des Compilers Sie verwenden. Oder Sie können Boost.Config verwenden, um festzustellen, ob bestimmte Funktionen unterstützt werden.

    
Nicol Bolas 15.02.2012 03:33
quelle
1

Visual Studio 2008? Sie können C ++ 11 vergessen. Visual Studio 2010 hat einige C ++ 11, aber es ist fehlerhaft. Visual Studio 2012 hat C ++ 11 für einige Features besser, aber andere fehlen. Visual Studio 2013 bietet neue Unterstützung für variadische Vorlagen und andere Funktionen. Aber VS steht hinter anderen Compilern wie gcc in C ++ 11 Unterstützung. Sie können für alle diese Versionen kostenlose Express-Editionen herunterladen.

    
Neil Kirk 19.08.2013 03:59
quelle