Umwandlungsproblem mit template-klasse
-
Gute Nacht allerseits.
Wieso funktioniert folgendes nicht:
template<class T> class Klasse { public: Klasse(int z) { } }; template<class T> void func(Klasse<T> a) { } int main() { func(2); // geht nicht :confused: wieso wird Klasse(int) nicht zur umwandlung genommen ?????? }
-
Hi,
gehen wir mal davon aus es wird Klasse(int), so wie du es gern hättest aufgerufen.
Was wäre dann aber T ?Die 2 würde in ein Klasse<?> mit Hilfe von Klasse<?>(int) konvertiert werden

Du hättest zwei Möglichkeiten, um dieses Problem zu beheben:
1.) func keine Templatefunktion, sondern nur mit gewünschtem Typ:
void func(Klasse<int> a) { }2.) Explizit T angeben:
template<class T> void func(Klasse<T> a) { } int main() { func<int>(2); }Nebenbei hast du etwas vermasselt, was ich vor hatte

-
KasF schrieb:
Nebenbei hast du etwas vermasselt, was ich vor hatte

!?
-
Konrad Rudolph schrieb:
KasF schrieb:
Nebenbei hast du etwas vermasselt, was ich vor hatte

!?
ich wette aufs fehlersuchspiel
