Compiler soll nach eingabe erst über benutzten datentyp entscheiden
-
besteht denn die möglichkeit das eine Template-Klasse erst über den benutzen datentyp entscheidet nachdem ich ihn mit >> eigelesen hab?
also nachdem ich eine int oder float oder complex...eingeben habe?
das Problem ist das er ja vorher gar nicht weis welchen >>Operator er benutzen soll (weil ich auch überladene habe!).
-
Du liest ja in einen bestimmen Datentypen ein, also weisst du zur Kompilierzeit, von welchem Typ die Eingabe sein wird. (mal abgesehen von falschen Eingaben o.ä).
-
Nein, Templateparameter müssen zur Compilezeit feststehen. Aber auch die Typen der Variablen in die eingelesen werden soll müssen zur Compilezeit feststehen.
Du brauchst vielleicht garkeine Unterscheidung. Immerhin ist jede reelle Zahl eine komplexe Zahl mit 0i und Ganzzahlen lassen sich auch in floats speichern, also kannst du eigentlich immer complex<float> nehmen. Wenn du nicht Tausende von solchen Zahlen hast wirds dem Speicher auch nix ausmachen.
geloescht
-
ok danke!
-
geloescht schrieb:
Nein, Templateparameter müssen zur Compilezeit feststehen. Aber auch die Typen der Variablen in die eingelesen werden soll müssen zur Compilezeit feststehen.
Du brauchst vielleicht garkeine Unterscheidung. Immerhin ist jede reelle Zahl eine komplexe Zahl mit 0i und Ganzzahlen lassen sich auch in floats speichern, also kannst du eigentlich immer complex<float> nehmen. Wenn du nicht Tausende von solchen Zahlen hast wirds dem Speicher auch nix ausmachen.
geloeschtist eigentlich ne gute idee, nur habe ich zusätzlich noch ne bruch-klasse die aus int zähler und nenner besteht. dies zu unterscheiden dürfte dann schwierig sein!
-
HoCiEp3 schrieb:
geloescht schrieb:
Nein, Templateparameter müssen zur Compilezeit feststehen. Aber auch die Typen der Variablen in die eingelesen werden soll müssen zur Compilezeit feststehen.
Du brauchst vielleicht garkeine Unterscheidung. Immerhin ist jede reelle Zahl eine komplexe Zahl mit 0i und Ganzzahlen lassen sich auch in floats speichern, also kannst du eigentlich immer complex<float> nehmen. Wenn du nicht Tausende von solchen Zahlen hast wirds dem Speicher auch nix ausmachen.
geloeschtist eigentlich ne gute idee, nur habe ich zusätzlich noch ne bruch-klasse die aus int zähler und nenner besteht. dies zu unterscheiden dürfte dann schwierig sein!
std::complex<bruch> ?
allerdings hat man dann halt wieder das problem, dass man z.bsp. sqrt(2) nicht darstellen kann...
wieso willst du in ein und dem selben container unterschiedliche datentypen verwenden?bb