Drucken

C++0x ohne Concepts

Hallo allerseits,

das Warten auf den nächsten Standard der Sprache C++ hat ein Ende, allerdings ein anderes, als viele Entwickler es erwartet haben: ein C++0x wird es wohl in diesem Jahr nicht geben, stattdessen erwartet man den neuen Standard frühestens 2010!

Der Erfinder der objektorientierten Sprache C++, Bjarne Stroustrup, berichtet in einem Artikel bei Dr. Dobb’s, das der nächste Standard wohl nicht vor 2010 verabschiedet, und demzufolge wahrscheinlich den Namen C++1x tragen wird.

„Concepts would be dropped in a dramatic voting.“

Darüber hinaus wird der neue Standard ohne Concepts sein, eines der geplanten zentralen neuen Features des neuen Standards. Stroustrup schreibt bei Dr. Dobb’s, das die ISO-Workinggroup Concepts regelrecht aus dem Standard “herausgerissen” hätte. Der C++-Spezialist Denny Kalev, selber Mitglied des ISO C++ Standard Komitees von 1997 bis 2000, schreibt in seinem Blog bei InformIT, dass das Komitee bei seinem Treffen am 13. Juli in Frankfurt Concepts sehr überraschend in einer dramatischen Abstimmung aus C++0x rausgewählt hätten. Diese Entscheidung der ISO wird von vielen Experten als eine herbe Enttäuschung und als Rückschlag empfunden. Stroustrup selber hat über 7 Jahre an Concepts mitgearbeitet und schreibt:

„That — in my opinion — is a major setback for C++, but not a disaster; and some alternatives were even worse. (…) It need not be emphasized that I and others are quite disappointed. The fact that some alternatives are worse is cold comfort and I can offer no quick and easy remedies.“ (Bjarne Stroustrup)

cplusplus0xStroustrup hebt allerdings auch hervor, das der neue C++-Standard auch ohne Concepts ein sehr großer Fortschritt gegenüber dem in die Jahre gekommenen ISO/IEC 14882:2003 sein wird. Neben einer sehr guten Sprachunterstützung von nebenläufiger Programmierung gibt es u.a. eine verbesserte Standard-Bibliothek, zahlreiche Stolperfallen und diverse Unwägbarkeiten (z.B. das “> >” bei geschachtelten Templates) sollen entfernt, und das Schreiben von effizientem, wartbarem Code vereinfacht werden. Zudem werden, das steht bereits fest, Teile der mittlerweile in der C++-Gemeinde etablierten Boost-Bibliotheken (siehe Technical Report 1 (TR1)) in den Standard integriert und bekommen damit verpflichtenden Charakter. Nach wie vor wird C++ als die Programmiersprache der Wahl betrachtet, die insbesondere in der systemnahen Entwicklung und bei Embedded Systems ihre Stärken hinsichtlich Effizienz und Performanz ausspielen kann.

Concepts

Die Idee hinter Concepts ist es vor allem die Benutzung von Templates zu erleichtern, indem quasi Anforderungen an die Template-Parameter formuliert werden können. Mit Hilfe einer requires-Clause kann der Entwickler eines Templates z.B. formulieren, das ein beliebiger Template-Parameter T bestimmte Bedingungen und Anforderungen erfüllen muss; diese Anforderungen werden zuvor allgemeingültig in einem concept-Term formuliert. So kann der Entwickler beispielsweise ausdrücken, das T bestimmte Operatoren (z.B. Vergleichsoperatoren) implementieren muss. Eine sehr gute und kurze Einführung in Concepts mit Beispielen hat Douglas Gregor veröffentlicht: Easier C++: An Introduction to Concepts.

Amazon Ads...

Hosted by...

Publicons

Google Ads...

Creative Commons License

Dieses Werk bzw. dieser Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Fork me on GitHub