Poderá receber um "erro C2593: ' operador << ' é ambíguo" mensagem de erro quando tenta passar uma variável __int64 para o operador ostream <<

Traduções de Artigos Traduções de Artigos
Artigo: 168440 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Se tentar passar uma variável __int64 para o operador ostream <<, obterá o seguinte erro:
Erro C2593: ' operador << ' é ambíguo

Causa

Não existe nenhum operador << para tipo __int64 definido para a classe ostream.

Resolução

Definir uma versão própria do operador <<. A secção de código de exemplo seguinte mostra uma solução simples para << operador que converte a variável __int64 um carácter * escreva e transmite-a ostream << operador.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos do Microsoft listados na secção "Aplica-se a".

Este problema foi corrigido no Microsoft Visual C++ .NET.

Mais Informação

O programa de exemplo seguinte demonstra o problema e solução alternativa:
//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;
}
				

Propriedades

Artigo: 168440 - Última revisão: 26 de maio de 2005 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • The Standard C++ Library nas seguintes plataformas
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 5.0 Professional Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palavras-chave: 
kbmt kbbug kbcrt kberrmsg kbfix kbnoupdate KB168440 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 168440

Submeter comentários

 

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