Tester l'existence d'une méthode
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:
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? :D