2014-09-28 10 views
33

Ich bin auf der Suche nach einigen Präprozessor Sachen, und ich möchte eine genauere Nummer für was __cplusplus in C++ 14 sollte als definiert werden. Gibt es einen vom Standard vorgeschriebenen?Gibt es eine Standarddefinition für __cplusplus in C++ 14?

+0

N3936 sagt '201402L'. N3797 sagt immer noch C++ 11. – chris

+1

Tha ist der Punkt mit Entwürfen; Die Zukunft voraussagen ist schwer. C++ 98 endete mit einem Wert von 1997. – MSalters

+3

clang ++ 3.5.0 hat bereits die richtige Definition, g ++ 4.9.0 nicht: http://coliru.stacked-crooked.com/a/423c4f858358d017 – Deduplicator

Antwort

40

N3936 * §16.8 [cpp.predefined]/p1:

1 Die folgenden Makronamen werden durch die Implementierung definiert werden:

__cplusplus

Der Name __cplusplus definiert ist auf den Wert 201402L wenn eine C++ Übersetzungseinheit kompiliert.

N3936 ist der letzte Arbeitsentwurf, der C 14 ++ wurde, und die Zahl 201402L steht im Einklang mit dem Treffen, an dem der C++ 14-Standard für die endgültige balloting ausgesandt (February 2014).

* interessiert Diejenigen in eine Kopie des C++ zu erhalten sollte Standard überprüfen Where do I find the current C or C++ standard documents?

Verwandte Themen