Mai 30

Peter Gottschling

Type-Traits mit modernen C++-Features

Type-Traits mit modernen C++-Features von Peter Gottschling

Type-Traits beschreiben Eigenschaften von Typen und sind ein fundamentaler Bestandteil der Metaprogrammierung. Sie lassen sich mit klassischen C++03 über Template-Spezialisierung implementieren. Damit kann man Typeigenschaften für bestimmte Typen oder Muster von Typen (mittels partieller Spezialisierung) definieren. Unglücklicherweise erstrecken sich die Spezialisierungen einer Klasse nicht auf die davon abgeleiteten, so dass für jede neue Klasse die Type-Traits erneut spezialisiert werden müssen, auch wenn es schon eine geeigneten Trait für die Basisklasse gibt. Eine weitere Unannehmlichkeit in C++03 ist, dass man auf Typresultate mittels "typename ...::type" zugreifen muss. C++11 bietet uns constexpr-Functionen, deren Compilezeitauswertung uns erlaubt, mit Funktionsüberladung statt mit Spezialisierung zu arbeiten. Dafür benötigen wir allerdings Compiletimeobjekte und die lassen sich nun mal nicht von jedem Typ erzeugen. Das wirft die Frage auf, ob es sinnvoller ist, Type-Traits für Objekte oder für Typen zu definieren. Oder beides? Und wie behandelt man Typen, deren Objekte nicht an constexpr übergeben werden können. Unter Verwendung von Template-aliases, decltype, declval und eines obskuren C-Features (welches ich geschworen hatte, nie zu verwenden) ist eine hybride Lösung für die obigen Probleme gelungen.

Auf unserem Video-Portal studios.ppedv.de findet man eine breite Basis an Informationen rund um das Thema IT.

Die Schwerpunkte bilden dabei nicht nur Microsoft-Technologien. Themen wie Visual Studio, .net, C++, C#, Angular JS und viele mehr werden von unseren professionellen Trainern detailliert erklärt.


"Vielen Dank für die hilfreichen Videos! Der Inhalt ist auf den Punkt gebracht."

Thomas M.

"Euer Content hilft mir sehr! Besonders interessieren würde ich mich für weitere Videos zum Thema: C++ Parallelisierung und die Erstellung von grafischen Benutzeroberflächen."

Peter H.

"Für jeden was dabei, egal ob Anfänger oder Profi."

Klaus G.

"Echt super, dass ich mir die Vorträge von den SQLdays hier ansehen kann. Leider konnte ich letztes Jahr bei der Konferenz nicht vor Ort sein."

Lana A.