Ich habe eine FunktionUnbekannt Rückgabetyp in Vorlage
template <typename T1, typename T2>
/*return type*/ foo(MyClass<T1>& bar1, MyClass<T2>& bar2)
{
if (something)
return bar1;
else
return bar2;
}
Das Problem ist, dass ich weiß nicht, was wird diese Funktion Rückkehr: es entweder MyClass<T1>
oder MyClass<T2>
sein kann.
Wie kann ich es zur Arbeit bringen?
T1 und T2 sind Strukturen von 3 Ints, die zur Kompilierungszeit bekannt sind. Der Rückgabetyp hängt davon ab, kleiner dieser 2: zum Beispiel für T1 = <5, 1, 1>
T2 = <4, 4, 7>
Rückgabetyp sollte MyClass<T2>
sein.
Beispiel Nutzung:
MyClass<5, 2, 8> m1;
MyClass<4, 2, 1> m2;
cout << foo(m1, m2); //should print m2 (I have a method used for that)
Ist 'something' eine Kompilierung oder zur Laufzeit Zustand? –
Ja gut zu wissen, ob es Kompilierzeit oder Laufzeit ist ... – AlexTheo
Bearbeitet, um diese Frage zu beantworten. –