Bonjour,
je voudrais savoir s'il existe une fonction permettant de retourner la taille d'un type qui est dans une chaine de caracteres.
Du genre:
sizeof("char") qui me donnerait 1 et non 4 octets.
Merci.
Version imprimable
Bonjour,
je voudrais savoir s'il existe une fonction permettant de retourner la taille d'un type qui est dans une chaine de caracteres.
Du genre:
sizeof("char") qui me donnerait 1 et non 4 octets.
Merci.
Il n'existe rien d'automatique et tout joli pour faire ça non.
Les trucs qui pourraient s'en rapprocher sont assez complexes et ne "tiennent" pas la route si t'as besoin d'appliquer ça pour pleiiiiiins de nouveaux types.
Pourquoi as-tu besoin de ça ?
Bonjour,
Je pense que l'utilisation d'un enum sera la solution à envisager.
Sinon, ça ressemble beaucoup à un code proche de celui là:
( pardon, mon code n'est pas C++, veuillez vous rappeler qu'il y a des std::string et une méthode compare dans la STL ( et surement l'opérateur == surcharger convenablement ) )
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 // Ceci est une exemple const char type = "char"; int nbBytes = 0; if ( strcmp( type, "char" ) ) { nbBytes = sizeof(char); } else if ( strcmp ( type , "int" ) ) { nbBytes = sizeof(int); }
L'enum est très peu pratique à utiliser. A la rigueur avec du bricolage tu fais une macro qui ajoute la correspondance entre la chaine et le type etc de sorte à n'avoir qu'une seule ligne à écrire par nouveau type.
Mais bon... Avoir à concevoir un tel mécanisme, dans 95% des cas c'est pas bon signe.