Şablonum olmasını istediğim bir işlev var, şu anda std::string
ve std::wstring
için iki farklı sürümüm var.Şablonlar ve sabit dizeler
fonksiyonu (şeritli), bu
template <class T, class _Tc>
std::vector<T> TokenizeArgs(const T& in) {
const T tofind = T("\"' ");
.. do stuff ..
}
T
gibidir ya std::string
veya std::wstring
ve _Tc
char
veya wchar_t
ya olmasıdır. Şablon sürümünde çalışmayı tanımladığım sabit dizeleri almayla ilgili bir sorun yaşıyorum. Yukarıdaki kod std::string
için çalışıyor, ancak std::wstring
için değil, çünkü std::wstring
için char*
dizisini alan bir kurucu yok. Normalde bunu düzeltmek için sabit dizeyi const T tofind = L"\"' "
olarak bildiririm, ancak std::string
ile çalışmaz.
Şablonlarla çok fazla deneyimim yok ve bu sorunu nasıl düzelteceğimi gerçekten bilmiyorum.
@ BЈовић Öyle düşünürdüm çünkü işlevler birbirinin aynıdır – user1520427