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.)