#1 

08-04-2012 21:11:07

johnplayer
Membres
Avatar de johnplayer
Date d'inscription:
Messages: 431
IP: 83.192.223.56
Courriel

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.


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#2 

09-04-2012 15:29:39

RVM
Membres
Date d'inscription:
Messages: 20
IP: 78.233.157.106
Courriel

J'aurais proposé Boost Typeof ( http://www.boost.org/doc/libs/1_49_0/doc/html/typeof.html ), mais bon, trop tard...

RVM


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
570 invités en ligne
membre en ligne: -
RSS Feed