0

C++: mit Templates zwei verschiedene Typen addieren

Im Folgenden geht es darum, zwei verschiedene Typen per Template zu addieren. Dazu wird der add-Operator (+) ueberladen. Rueckgabewert soll im hoeherwertigen Typ sein (z.B. int + double = double).
Verwendet man den neuen C++11-Standard, kann man das neue decltype verwenden. Hier als Beispiel um zwei Elemente unterschiedlichen Typs zu addieren.

template<typename A, typename B>
auto operator+(const MyList<A>& a, const MyList<B>& b)
-> MyList<decltype(a[0] + b[0])>
{
return MyList(a[0] + b[0], a[1] + b[1]);
}

Alternativ kann man jetzt beim return auch

return {a[0] + b[0], a[1] + b[1]}

schreiben.
(Vorausgesetzt wird, dass der Konstruktor vorhanden ist.)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert