template<typename TO, typename FROM > TO change(FROM& from) { std::stringstream sstr; sstr << from; TO to; sstr >> to; return to; }
int main() { std::string test = "Hallo "; for (int i = 1; i < 11; ++i) { change<std::string>(i); test += i; } std::cout << test; std::cin.get(); }
Dabei müsste change() doch IMO i ändern, da ich FROM& benutzt habe, oder?
Wenn ich dagegen test += change<std::string>(i); benutze, funktioniert alles. -- SimonDieser Post wurde am 27.01.2007 um 13:26 Uhr von Suba Esel editiert.
Hi, auch irgendwo logisch - du änderst dein i ja nicht, er wandelt dir das i in einen string um (kopiert es ja von "from" über den stringstream in einen string) und liefert den zurück, an "from" wird ja nichts verändert (btw da könnte man ein const hinmachen) -- class God : public ChuckNorris { };
Willst du auf die Art zur Laufzeit den Typ von i ändern? Das geht nicht, da musste schon ne neue Variable für nehmen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra