Template + für basic_string überladen
-
Hi,
ich habe eine template-Funktion nach dem Schema template<class t> void a(t& b);
Nun möchte eine Überladene Funktion abieten, welche basic_strings egal welcher art (also auch welche, welche ganz exotische Allokatoren haben) annimmt. Wie mache ich das?
-
template< typename CharType, typename CharTraits, typename Alloc > void foo( const std::basic_string< CharType, CharTraits, Alloc >& str ) { }Oder einfach:
template< typename T > void foo( const T& str ) { }
-
ich will aber foo<string>(...) schreiben, und nicht foo<char,bla,bla>(...);
-
Dann nimm das zweite...

-
David_pb schrieb:
Dann nimm das zweite...

Ich möchte aber doch eben zwischen irgendeinem belibiegen Typ und einem basic_string
-
c++--++-- schrieb:
David_pb schrieb:
Dann nimm das zweite...

Ich möchte aber doch eben zwischen irgendeinem belibiegen Typ und einem basic_string
Beendest du den Satz auch noch?

-
unterscheiden...
-
template<class t> void foo(const t& t_) { } template<class a,class b,class c> void foo(const basic_string<a,b,c>& t_) { } //... foo<int>(0); foo<string>(""); //<-jetzt soll die zweite Funktion aufgerufen werden!!!
-
c++--++-- schrieb:
template<class t> void foo(const t& t_) { } template<class a,class b,class c> void foo(const basic_string<a,b,c>& t_) { } //... foo<int>(0); foo<string>(""); //<-jetzt soll die zweite Funktion aufgerufen werden!!!template<class t> void foo(const t& t_) { } template<> void foo<string>(const string& t_) { } //... foo<int>(0); foo<string>(""); //<-jetzt soll die zweite Funktion aufgerufen werden!!!?
-
ich sagte ja gerade schon, dass es für alle arten von strings, also string, wstring, basic_string<char,foo,bar> etc. gehen soll...
-
template <class CharType,class CharTraits,class Alloc, template<class CharType,class CharTraits,class Alloc> class stringos> void foo(const stringos<CharType,CharTraits,Alloc>& str) { }?