मेरे पास एक फ़ंक्शन है जिसे मैं टेम्पलेट करना चाहता हूं, इस समय मेरे पास std::string
और std::wstring
के लिए दो अलग-अलग संस्करण हैं।टेम्पलेट्स और निरंतर तार
समारोह (नीचे छीन) इस
template <class T, class _Tc>
std::vector<T> TokenizeArgs(const T& in) {
const T tofind = T("\"' ");
.. do stuff ..
}
T
की तरह है या तो std::string
या std::wstring
और _Tc
या तो char
या wchar_t
है। मुझे टेम्पलेट संस्करण में काम करने के लिए परिभाषित निरंतर तार प्राप्त करने में कोई समस्या है। उपरोक्त कोड std::string
के लिए काम करता है लेकिन std::wstring
के लिए नहीं है क्योंकि std::wstring
के लिए कोई कन्स्ट्रक्टर नहीं है जो char*
सरणी लेता है। आम तौर पर इसे ठीक करने के लिए मैं निरंतर स्ट्रिंग को const T tofind = L"\"' "
के रूप में घोषित करता हूं, लेकिन फिर यह std::string
के साथ काम नहीं करेगा।
मुझे टेम्पलेट्स के साथ अधिक अनुभव नहीं है और इसलिए मुझे नहीं पता कि इस समस्या को कैसे ठीक किया जाए।
@ BЈовић ठीक है, मैंने ऐसा सोचा होगा क्योंकि कार्य अन्यथा समान हैं – user1520427