Puede recibir un "error C2593: ' operador << ' es ambiguo" mensaje de error cuando intenta pasar una variable de __int64 al operador ostream <<

Seleccione idioma Seleccione idioma
Id. de artículo: 168440 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Si intenta pasar una variable de __int64 al operador ostream <<, recibirá el siguiente error:
Error C2593: ' operador << ' es ambiguo

Causa

No hay ningún operador << para tipo __int64 definido para la clase ostream.

Solución

Definir su propia versión del operador <<. La sección de código de ejemplo siguiente muestra una solución sencilla para << operador que convierte la variable de __int64 a un char * escriba y lo pasa el ostream << operador.

Estado

Microsoft ha confirmado que se trata de un error de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Este problema se corrigió en Microsoft Visual C++ .NET.

Más información

El programa de ejemplo siguiente demuestra el problema y solución:
//Sample.cpp
// Compiler Options : /GX

//#define WORKAROUND   //Uncomment this line to workaround

#include<iostream>
using namespace std;

#ifdef WORKAROUND
std::ostream& operator<<(std::ostream& os, __int64 i )
{
    char buf[20];
    sprintf(buf,"%I64d", i );
    os << buf;
    return os;
}

#endif

int main(){
__int64  i64;

cout << i64 ;

return 0;
}
				

Propiedades

Id. de artículo: 168440 - Última revisión: jueves, 26 de mayo de 2005 - Versión: 3.0
La información de este artículo se refiere a:
  • The Standard C++ Library sobre las siguientes plataformas
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Enterprise
    • Microsoft Visual C++ 5.0 Professional
    • Microsoft Visual C++ 6.0 Professional
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palabras clave: 
kbmt kbbug kbcrt kberrmsg kbfix kbnoupdate KB168440 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 168440

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com