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

nanou_26 Messages postés 1 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 25 mai 2005 - 25 mai 2005 à 09:10
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 - 26 mai 2005 à 09:13
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

MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
25 mai 2005 à 13:23
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...
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
26 mai 2005 à 09:13
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.
0