你目前正处于脱机状态,正在等待 Internet 重新连接

您可能会收到一个"错误 C2593: 运算符 << 是不明确"错误消息,当您试图将一个 __int64 变量传递给 ostream 运算符 <<

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 168440
症状
如果您尝试将一个 __int64 变量传递给 ostream 运算符 <<,出现以下错误:
错误 C2593: 运算符 << 是不明确
原因
没有运算符 << __int64 为 ostream 类定义的类型。
解决方案
定义您自己的运算符版本 <<。下面的示例代码段显示了一个简单的解决方案 << 运算符,将 __int64 变量转换为 char * 键入,然后将其传递给该 ostream << 运算符。
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的错误。

在 Microsoft Visual c + + 中,此问题已得到纠正.net。
更多信息
下面的示例程序演示问题和解决方法:
//Sample.cpp// Compiler Options : /GX//#define WORKAROUND   //Uncomment this line to workaround#include<iostream>using namespace std;#ifdef WORKAROUNDstd::ostream& operator<<(std::ostream& os, __int64 i ){    char buf[20];    sprintf(buf,"%I64d", i );    os << buf;    return os;}#endifint main(){__int64  i64;cout << i64 ;return 0;}				

属性

文章 ID:168440 - 上次审阅时间:05/26/2005 21:44:31 - 修订版本: 3.0

The Standard C++ Library

  • kbmt kbbug kbcrt kberrmsg kbfix kbnoupdate KB168440 KbMtzh
反馈
crosoft.com/ms.js'><\/script>");