2010-03-01 30 views
1

我可以知道在Visual C++ 6中傳遞代碼的方法是什麼?在VC6中使用__int64和std :: ostringstream

#include <sstream> 

int main() 
{ 
    std::ostringstream ss; 
    ss << 123; 
    __int64 i; 
    // error C2593: 'operator <<' is ambiguous 
    ss << i; 
} 

升級編譯器不是一個選擇,因爲我需要使用這個舊的編譯器來與舊系統進行接口。

回答

2

爲流插入操作提供自定義覆蓋。

示例實現如下

std::ostream& operator<<(std::ostream& stream, __int64 data) 
{ 
    char buf[255] = {0}; 
    _i64tot(data, buf, 10); 

    stream << buf; 
    return stream; 
} 
+0

'_i64tot'期望一個'TCHAR *',即這唯一的代碼編譯如果'_UNICODE'是*不*定義。你寧願用什麼'_i64toa'來代替。 –

相關問題