Hallo,
ich bins nochmal.. ich habe bemerkt dass mein Funktionstempalte zur Umwandlung von verschiedenen Typen nicht funtktionieren kann.. da bei Strings ja nur bis zum ersten Whitespace eingelesen wird.. nun muss ich also teilweise spezialisieren.. ich weiß nur nicht wie ich das machen könnte.. wie bekomme ich aus meinen Funktionstemplate ein Klassentemplate, welches Strings inkl whitespace einlesen kann?
Alles anzeigen
ich bins nochmal.. ich habe bemerkt dass mein Funktionstempalte zur Umwandlung von verschiedenen Typen nicht funtktionieren kann.. da bei Strings ja nur bis zum ersten Whitespace eingelesen wird.. nun muss ich also teilweise spezialisieren.. ich weiß nur nicht wie ich das machen könnte.. wie bekomme ich aus meinen Funktionstemplate ein Klassentemplate, welches Strings inkl whitespace einlesen kann?
Quellcode
- template <typename To, typename From>To stream_cast(From input)
- {
- std::stringstream str;
- str << input;
- To output;
- str >> output;
- if( !str.eof() )
- throw std::bad_cast("bad stream_cast");
- return output;
- }
- //Spezialisierung für gleiche Typen
- template<typename To> To stream_cast(const To &input)
- {
- return input;
- }
- //Spezialisierung string in char* -> wird nicht umgewandelt, input wird zurückgegeben
- template<> std::string stream_cast(const char* input)
- {
- return input;
- }
Forza Italia!!!!!!