Anhang E. Promotion Trait
Die Idee eines Promotion Trait ist recht einfach: Bestimme den Rückgabetyp des Funktions-Templates abhängig von seinen Eingabeargumenten dadurch, dass für jede Typkombination ein Rückgabetyp hinterlegt ist.
Generische add-Funktion
An einer generischen Funktion add
, die zwei Werte addiert, lässt sich diese Technik einfach darstellen. Das Funktions-Template besitzt die folgende Definition.
??? add(T1 first, T2 second){ return first + second; }
Um generisch zu sein, muss der Rückgabetyp von den Argumenten abhängen. Das lässt sich aber nicht allgemein bestimmen, da für zwei Argumente vom Typ double
und int
der Rückgabetyp double
, hingegen für zwei Typen long long
und int
der Rückgabetyp long long
sein sollte. In Listing E.1
Get C++11 für Programmierer now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.