我想寫一個模板函數,它將從給定的字符串中提取給定數據類型的值。我想出了這樣的事情:如何使用std :: istringstream使用std :: wstring?
template<class T>
static T getValue(const CString& val_in)
{
std::wstring value = val_in;
std::istringstream iss;
iss.str(value);
T val = T();
iss>>val;
return val;
}
但這給出了iss.str(value)
聲明下面的錯誤。
錯誤C2664: '無效 的std :: basic_istringstream < _Elem,_Traits,_Alloc> :: STR(常量 的std :: basic_string的< _Elem,_Traits,_AX> &)':不能轉換參數1從 '的std :: wstring的' 到 '常量 的std :: basic_string的< _Elem,_Traits,_AX> &'
因此,基本上,std::istringstream
僅接受10。我認爲可能有std::wistringstream
,但似乎沒有可用的。任何線索我怎麼能做到這一點?
是什麼讓你覺得沒有一個'wistringstream'可用?請參閱27.7 [lib.string.streams]。 – 2009-11-25 12:29:11
@Charles,我在嘗試wistringstream時遇到了編譯器錯誤(在VC9上),讓我再試一次。 – Naveen 2009-11-25 12:38:05
糟糕...現在編譯,不知道我改變了什麼,除了這個.. – Naveen 2009-11-25 12:41:52