#0 

08-04-2012 23:11:07

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

Voila, je voudrais implémenter une fonction du genre :

Code:

/** 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)


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


#1 

09-04-2012 17:29:39

RVM
Membre
Date d'inscription: 08-08-2010
Messages: 20

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

RVM

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
43 invités en ligne
Aucun membre connecté
RSS Feed