#1
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."
08-04-2012 21:11:07
- johnplayer
- Membres

- 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



