Bonjour à tous.

Existe t'il une maniere de tester l'existence d'une méthode au sein d'une classe?
En fait, pour realiser une sauvegarde au format XML, je test si ma variable est un type de base (a l'aide de typeid() ).
Si oui : j'enregistre tel quel.
Si non : je veux appeler la fonction toString de l'objet

Niveau code, on obtient ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
            // Pour convertir n'importe quel type de base en string
            if(basetype(typeid(it_attrib->info()).name()))
            {
                std::ostringstream os;
                os << it_attrib->info();
                a.value =  os.str();
            }
            else // pas un type de base mais une classe
            {
               a.value =  it_attrib->info().toString();
            }
Sauf que voila, dans le cas ou on a un type de base, la compilation va planter car le champs info ne possedera pas de fonction toString().

Une idée pour me sortir de la?