Ich habe eine Funktion Ich möchte Vorlage, im Moment habe ich zwei verschiedene Versionen für std::string
und std::wstring
.Templates und konstante Strings
die Funktion (stripped down) wird wie folgt
template <class T, class _Tc>
std::vector<T> TokenizeArgs(const T& in) {
const T tofind = T("\"' ");
.. do stuff ..
}
T
entweder std::string
oder std::wstring
und _Tc
entweder char
oder wchar_t
. Ich habe ein Problem damit, die von mir definierten konstanten Zeichenfolgen in der Template-Version zu verwenden. Der obige Code funktioniert für std::string
, aber nicht für std::wstring
, da es keinen Konstruktor für std::wstring
gibt, der ein char*
-Array benötigt. Normalerweise würde ich den konstanten String als const T tofind = L"\"' "
deklarieren, aber dann würde es nicht mit std::string
funktionieren.
Ich habe nicht viel Erfahrung mit Vorlagen und so weiß ich nicht wirklich, wie man dieses Problem beheben kann.
@ BЈovieћ Nun, ich hätte das gedacht, weil die Funktionen ansonsten identisch sind – user1520427