16#ifndef Type_info_included
17#define Type_info_included
63 void ajouter_type(
const Type_info& type_info);
64 static int search_type_info_name(
const char *nom,
int& index);
67 const char* names_ =
"rien";
69 mutable Nom * name_ =
nullptr;
70 mutable Nom * synonym_name_ =
nullptr;
72 Synonyme_info* synonym_=
nullptr;
80 Objet_U* (*cree_instance)()=
nullptr;
87 static int * types_homonymes;
89 static int nb_classes;
92 static int les_types_memsize;
class Nom Une chaine de caractere pour nommer les objets de TRUST
Un tableau de chaine de caracteres (VECT(Nom)).
classe Objet_U Cette classe est la classe de base des Objets de TRUST
Classe de base des flux de sortie.
modelise une information de synonyme pour les Objet_U
modelise une information de type pour les Objet_U
int instanciable() const
Renvoie 1 si le type associe est instanciable (cree_instance non nul) renvoie 0 sinon.
static int les_sous_types(const Nom &, Noms &sous_types)
Donne les noms des sous-types, un type mere etant donne par son nom.
Type_info(const char *name, Objet_U *(*f)(), int nb_bases=0, const Type_info **bases=0)
Constructeur par un nom, une fonction et un tableau de meres.
Objet_U * instance() const
Cree une instance de la classe associee au type_info.
int has_base(const Type_info *p, int direct=0) const
Test d'appartenance d'un type dans les types de bases du type considere si direct == 0.
int can_cast(const Type_info *p) const
Exploration de la hierarchie des types retourne 1 si p pointe sur un sous type du type considere.
int same(const Type_info *p) const
Renvoie 1 si this==p, 0 sinon.
static int est_un_type(const char *)
Test d'existence d'une classe du type indique si il existe une classe T dont le Type_info a.
static Sortie & hierarchie(Sortie &)
Ecriture de toute la hierarchie du type considere sur un flix de sortie.
static const Type_info * type_info_from_name(const char *type_name)
Methode statique qui renvoie un pointeur vers le Type_info dont le nom est "type_name".
Sortie & bases(Sortie &) const
Ecriture des bases du type considere sur un flot de sortie.