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.