Pb de compilation (error C2593: 'operator <<' est ambigu)

Signaler
Messages postés
1
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
25 mai 2005
-
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
-
J'obtient une erreur de compilation "error C2593: 'operator <<' est ambigu" sur la ligne en rouge. qqun aurait une solution? Je compile sous .NET


T m_val;
// valeur
...
virtual string GetValAsString(bool bHexa = false
)
{
UpdateVal();
char
szVal [50];
ostrstream strVal((
char *)szVal, sizeof(szVal));
if (sizeof(T) == sizeof(char))
{
//pr les char on est embete, la valeur est traduite en car ASCII


if (m_bSignedNumber)
{
long iVal = m_val;
strVal << iVal << ends;
}
else
{
unsigned long uVal = m_val;
strVal << uVal << ends;
}
}
else
{
strVal << m_val << ends;
}
}

2 réponses

Messages postés
59
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2006

Si T est une classe, ajoute lui la méthode operator << pour qu'elle renvoie un char*

char * T::operator << ()
{
//Transformation de la valeur en char*
return valeur en char*;
}

sinon, essaye de trouver un moyen de transformer cette valeur en char * juste avant le cout...
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
sizeof(T) == sizeof(char) equivalent à sizeof(T) == 1



ostrstream est déprécié, il faut utiliser std::ostringstream.

std::ostream & operator << ( std::ostream &, ) doit erte surcharger pour T.