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 :
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().
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(); }
Une idée pour me sortir de la?
Partager