【发布时间】:2011-09-20 09:38:59
【问题描述】:
我有以下代码:
/** Stupidly copies unicode chars into normal chars. */
std::string wstring2string(__in const std::wstring& s)
{
std::string temp(s.length(), ' ');
#pragma warning(push)
#pragma warning(disable: 4244) // possible loss of data
std::copy(s.begin(), s.end(), temp.begin());
#pragma warning(pop)
return temp;
}
我的编译器仍然显示警告 C4244:
1>c:\program files\microsoft visual studio 10.0\vc\include\xutility(2144): warning C4244: '=': Konvertierung von 'const wchar_t' in 'char', möglicher Datenverlust
1> c:\program files\microsoft visual studio 10.0\vc\include\xutility(2165): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template "_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt,std::_Nonscalar_ptr_iterator_tag)".
(英文:“将const wchar_t转换为char,可能会丢失数据,参见刚刚编译的函数模板的实例化参考……”)。
如何禁用它?!
【问题讨论】:
-
只是好奇:您确定忽略此警告是个好主意吗?
wstring s和string temp的编码呢?
标签: c++ visual-studio-2010 visual-c++ warnings