classe de type_information
La classe de type_information décrit les informations de type générées dans le programme par le compilateur.Les objets de cette classe stockent effectivement un pointeur vers un nom pour le type.La classe de type_information enregistre également une valeur encodée appropriée pour comparer deux types d'égalité ou assembler la commande.Les règles d'encodage et la séquence de assembler pour les types sont pas spécifiées et peuvent différer entre les programmes.
Le fichier d'en-tête <typeinfo> doit être inclus pour utiliser la classe de type_information .l'interface pour la classe de type_information est :
class type_info {
public:
virtual ~type_info();
size_t hash_code() const
_CRTIMP_PURE bool operator==(const type_info& rhs) const;
_CRTIMP_PURE bool operator!=(const type_info& rhs) const;
_CRTIMP_PURE int before(const type_info& rhs) const;
_CRTIMP_PURE const char* name() const;
_CRTIMP_PURE const char* raw_name() const;
};
Vous ne pouvez pas instancier des objets de la classe de type_information directement, car la classe n'a qu'un constructeur de copie privé.La seule façon de construire l'objet d'un type_information (temporaire) est d'utiliser l'opérateur de typeid .Étant donné que l'opérateur d'assignation est également privé, vous ne pouvez pas copier ou d'assigner des objets de classe type_information.
type_information : : hash_code définit une fonction de hachage appropriée pour mapper des valeurs de type typeinfo à une distribution des valeurs d'index.
Les opérateurs == et != peuvent être utilisés pour comparer d'égalité et l'inégalité et d'autres objets de type_information , respectivement.
Il n'existe aucun lien entre la commande s'assemblante de types et les relations d'héritage.Utilisez la fonction membre de type_information : : avant pour déterminer la séquence assemblante de types.Il n'y a aucune garantie que type_information : : avant offre le même résultat dans des programmes différents ou même différentes séries de même programme.De cette manière, type_information : : avant est semblable à l'adresse l'opérateur de ().
La fonction membre de type_information : : nom retourne const char* à une chaîne terminée par le caractère NULL représentant le nom explicite du type.La mémoire vers lequel est mise en cache et doit jamais être directement libérée.
La fonction membre de type_information : : raw_name retourne const char* à une chaîne terminée par le caractère NULL représentant le nom décoré du type d'objet.Le nom est stocké réellement sous forme décorée pour économiser de l'espace.Par conséquent, cette fonction est plus rapide que type_information : : nom car elle n'a pas besoin d'undecorate le nom.La chaîne retournée par la fonction de type_information : : raw_name est en comparaison d'opérations utiles mais n'est pas lisible.si vous avez besoin d'une chaîne explicite, utilisez la fonction de type_information : : nom à la place.
Les informations de type sont générées pour les classes polymorphes uniquement si l'option du compilateur de /GR (Activez le Run aller-retour Type Information) est spécifiée.