wichtigste Neuerungen in C++11 und C++14?
-
Was sind für euch persönlich die wichtigsten Neuerungen in C++11 und C++14?
-
constexpr
- Variadic templates
- (expression SFINAE)
- Die Erweiterungen der Standardbibliothek!
Der Syntaxzucker (Lambdas, placeholder Typen, range-based for, etc.) ist auch ganz nett.
-
Ich antworte mal für mich selbst:
1. C++11:
1.1. Sprache
- lambdas
- auto
- constexpr
- variadic templates
- ranged for
- rvalues/move
- static_assert1.2. STL:
- Multithreading
- tuple2. C++14:
keine Ahnung
-
Die neuen value categories und Move-Semantik sind natürlich ebenfalls essentiell, wobei das im Prinzip auch nur Syntax-Zucker ist (vgl. Boost.Move) - sehr wichtiger, jedoch, da das eigene Verkleiden von Objekten und das perfect forwarding mittels Wrappern wahrscheinlich unsauberer ablaufen würde.
Was C++14 angeht: Relaxed constraints on
constexpr
functions wäre wohl eines der wichtigsten neuen Features. Dann gab es noch einige Kleinigkeiten.
-
Was sind "value categories" und "Relaxed constraints on constexpr functions"?
-
C++11 https://en.wikipedia.org/wiki/C%2B%2B11
C++14 https://en.wikipedia.org/wiki/C%2B%2B14
C++17 https://en.wikipedia.org/wiki/C%2B%2B17
-
Für mich die Reihenfolge: variadic templates, rvalue references, auto, lambda. Das sind die Sachen, die bei mir überall im neuen Code verwendet werden, wo es Sinn macht. Den grössten Impact auf die Struktur meines Codes haben definitiv variadic templates gehabt, wobei ich gestehen muss, dass ich gerade am Anfang zu viel damit gemacht habe. Ein Haufen der Sachen baut man besser einfach normal hin und ist fertig. Mit variadic templates bekommt man viele "optimale" Lösungen hin, aber man betreibt auch viel Gehirnakrobatik.
Bei den Libraries finde ich type_traits am wertvollsten (kein Wunder, wenn ich die Templates in religiösen Ausmassen nutze; damit kannst dann wieder Grenzfälle oder Spezialisierungen ganz toll abhandeln), gefolgt von random und was halt dazugehört, gefolgt von thread und chrono.
-
Kannst du mal sagen, wo du variadic templates eingesetzt hast?
-
sdfd schrieb:
Kannst du mal sagen, wo du variadic templates eingesetzt hast?
braucht man z.B. fuer emplace oder make_unique bzw. entsprechende alternativen fuer eigene typen.