Voila, je voudrais implémenter une fonction du genre :
/** Illustration du principe **/ template<class T> Data dataFromTemplate(T valeur) { Data.Type = "type_de_valeur"; // sauvegarde du type de T dans un stringw }
Bon forcément, le code au-dessus est faux. Mais j'aimerais savoir s'il est possible de "connaitre" le type de T afin de le sauvegarder dans un fichier en même temps que la variable.
Je doute que ce soit possible mais l'espoir fait vivre^^.
En espérant qu'un connaisseur en c++ passe dans le coin...
Edit : Je suis tombé sur :
#include <typeinfo>
using namespace std;
typeid(variable).name();
Mais ça me donne des noms bizarres normalement si je fais : printf( typeid(valeur).name() ); je devrais avoir clairement le type de "valeur". Pour int, j'obtiens 'i'. Pour u8, j'obtiens 'h'. Pour u16, j'obtiens 'j'. Enfin pas terrible.
Edit2 : ça y est, j'ai trouvé!!!
abi::__cxa_demangle(typeid(valeur).name() ,0,0,&status ) donne le vrai nom sans erreur.
Ouf!! J'ai cru que j'allais devoir coder une fonction par type.
Dernière modification par johnplayer (09-04-2012 00:15:53)
Hors ligne
J'aurais proposé Boost Typeof ( http://www.boost.org/doc/libs/1_49_0/do … ypeof.html ), mais bon, trop tard...
RVM
Hors ligne