narrow und wide strings generierung mit templates
-
hallo leute
gibt es eine moeglichkeit mit templates narrow und wide strings zu erstellen, wobei strings jetzt nicht unbedingt im sinne von basic_string gemeint ist.
folgendes beispiel;
auto operator<<(std::ostream, const my_class &v) -> std::ostream& { out << "value=" << v.write_to_stream(out); return out; } auto operator<<(std::wostream, const my_class &v) -> std::wostream& { out << L"value=" << v.write_to_stream(out); return out; }
wenn ich jetzt da was aendern will, muss ich naetuerlich beide operator versionen aendern.
was ich gerne haette waere ungefaehr sowas:
template<class T> auto operator<<(std::basic_ostream<T> &out, const my_class &v) -> std::basic_ostream<T>& { out << special_func<T>("value=") << v.write_to_stream(out); return out; }
es soll dabei zur laufzeit nicht bei jedem aufruf des operators von narrow->wide convertiert werden oder umgekehrt.
wie ich das mit dem preprozessor hinbekomme, weiß ich. aber ich will den nur in notfaellen, wenn es nicht anders geht, verwenden.Meep Meep