C++14 ist fertig: eine Sprachversion zur geplanten Zeit

Bis auf ein paar Kleinigkeiten redaktioneller Natur sind die Neuerungen von C++14 einstimmig abgesegnet worden. Schon bald könnte die neue Sprachversion als neuer ISO-Standard herausgegeben werden.

In Pocket speichern vorlesen Druckansicht 304 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Herb Sutter, bei Microsoft angestellter Vorsitzender des ISO-C++-Standardisierungskomitees, hat berichtet, dass der derzeitige Entwurf des C++14-Standards den Segen aller Beteiligten erhalten hat, die zur Verabschiedung des Programmiersprachenstandards abgestellt wurden. Es stehen nun offenbar noch einige wenige redaktionelle Verbesserungen aus, bei denen es sich aber nur um Tippfehler und andere Nichtigkeiten handelt, bevor das Spezifikationspapier an die Internationale Organisation für Normung (ISO) zur Veröffentlichung übergeben wird. C++14 wird dann als neuer ISO/IEC-Standard 14882:2014(E) Programming Language C++ herausgegeben werden.

In der Ankündigung wird Sprachschöpfer Bjarne Stroustrup zitiert, dass C++14 termingerecht fertiggestellt worden sei und erste Implementierungen wichtiger involvierter Parteien schon vorlägen. Das sei außergewöhnlich und ein Segen für diejenigen, die C++ als moderne Sprache einsetzen wollen. Tatsächlich ist bislang keine Version der Sprache so schnell ratifiziert worden wie C++14, und den Sachverhalt, dass bereits Implementierungen für den neuen Standard zum Zeitpunkt der Fertigstellung des Standards vorliegen, hat es in der C++-Historie bislang auch noch nicht gegeben. Beispielsweise musste man bei C++98 fünf Jahre auf erste standardkonforme Implementierungen warten, bei C++11 waren es immerhin noch zwei.

C++14 ist eher als inkrementelles Update auf seinen Vorgänger zu sehen, nur deswegen war so schnell eine neue Sprachversion zu realisieren. Ein mit C++11 vergleichbares "großes" Release ist erst für 2017 geplant und heißt dementsprechend C++17. Zu den wichtigeren Features der neuen Sprachversion zählen die Möglichkeit, den Rückgabetyp von Lambda-Ausdrücken automatisch festlegen zu können. Das ging bei einfachen Ausdrücken mit einem return-Statement zwar bereits in C++11. Nun kann man jedoch beliebig viele return-Statements mit komplexen Kontrollstrukturen verbinden.

Zudem sind jetzt die Regeln des mit C++11 eingeführten Schlüsselworts constexpr aufgelockert worden. So sind nun Kontrollstrukturen möglich, etwa for- und while-Schleifen sowie if und switch. Bislang war hier nur der ?:-Operator gestattet. Weitere Neuerungen sind die Möglichkeit, dass jetzt einfache Variablen Templates sein können, "binary literals", die Angabe numerischer Literale in Binärform, und das Adressieren eines std::tuple über den Typ.

Für die ausführlichere Beschäftigung zur Entstehung von C++14, die wichtigsten Features sowie ihre Implementierung zum Beispiel in GCC und Clang bietet sich die hier hinterlegte Link-Liste zu einem iX-Artikel an. (ane)