6
我有一個函數我想要模板,目前我有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