templates und character types
-
Ich hab eine klasse, mit einem character type als template argument
(also char, wchar_t, u16char, u32char)template<typename char_type> class MyClass{ char_type c; public: void setDefault(){ c = 'a'; } };und da ist auch schon das problem, egal welcher char_type es ist, ich will immer das gleiche zeichen speichern, aber will die funktion für jeden typ spezialisieren.
ohne geht aber auch nicht, weil es bei wchar_t L'a' heißt, bei u16char u16'a' und so weiter... gibt es da eine einfachere methode?
-
Das ist das dritte mal, dass ich diese Frage lese...
http://www.c-plusplus.net/forum/314145-full
Könnte jemand mal eine gute Antwort schreiben und sie in die FAQ stellen?
-
template<typename char_type> struct MyClassCharTraits; template<typename char_type> struct MyClassCharTraits<char> { static const char default_value = 'a'; }; template<typename char_type> struct MyClassCharTraits<wchar_t> { static const wchar_t default_value = L'a'; }; ... template<typename char_type> class MyClass { private: char_type c; public: void setDefault() { c = MyClassCharTraits<char_type>::default_value; } };
-
danke, hat geklappt