#include <sstream>
int main()
{
std::ostringstream ss;
ss << 123;
__int64 i;
// error C2593: 'operator <<' is ambiguous
ss << i;
}
以上代码提示错误error C2593: 'operator <<' is ambiguous
这是由于ostringstream类没有定义__int64 类型的整型的缘故,自定义以下重载函数可以解决该问题:
#include <tchar.h>
std::ostream& operator<<(std::ostream& stream, __int64 data)
{
char buf[255] = {0};
_i64tot( data, buf, 10 );
stream << buf;
return stream;
}