16#ifndef TRUST_Deriv_included
17#define TRUST_Deriv_included
19#include <Objet_U_ptr.h>
58#define DERIV(_TYPE_) \
59 static_assert(false, "The old DERIV MACRO is now deprecated. Please use OWN_PTR instead.")
61#define OWN_PTR(_TYPE_) TRUST_Deriv<_TYPE_>
63template<
typename _CLASSE_>
86 if (objet) pointeur_ = (_CLASSE_*) objet;
87 else pointeur_ =
nullptr;
91 _CLASSE_ *pointeur_ =
nullptr;
93 int reprendre(
Entree&)
override {
return -100; }
94 int sauvegarder(
Sortie&)
const override {
return -100; }
111 assert(pointeur_ !=
nullptr);
120 assert(pointeur_ !=
nullptr);
129 assert(pointeur_ !=
nullptr);
136 assert(pointeur_ !=
nullptr);
143 if (pointeur_ != (&t))
153 if (pointeur_ != t.pointeur_)
161 operator const _CLASSE_& ()
const {
return valeur(); }
162 operator _CLASSE_& () {
return valeur(); }
166 const Type_info * type_info = _CLASSE_::info();
179 if (strcmp(msg,
"??") != 0)
182 if (strcmp(b,
"??") != 0)
192 if (strcmp(msg,
"??") != 0)
193 Cerr <<
valeur().que_suis_je() << finl;
243 assert(pointeur_ !=
nullptr);
250 assert(pointeur_ !=
nullptr);
257 assert(pointeur_ !=
nullptr);
Class defining operators and methods for all reading operation in an input flow (file,...
class Nom Une chaine de caractere pour nommer les objets de TRUST
Objet_U * get_Objet_U_ptr_check() const
Verifie si le pointeur est valide.
virtual void set_Objet_U_ptr(Objet_U *)
Fait pointer *this sur l'objet *ptr L'adresse peut etre nulle (pointeur nul).
void recopie(const Objet_U &)
Duplique l'Objet_U obj puis change le pointeur vers cette copie.
Objet_U_ptr(const Objet_U_ptr &)=delete
Objet_U * typer(const char *nom_type)
Essaie de creer une instance du type "type".
classe Objet_U Cette classe est la classe de base des Objets de TRUST
int numero() const
Renvoie l'indice de l'objet dans Memoire::data.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
classe TRUST_Deriv_Objet_U est quasiment identique a TRUST_Deriv<Objet_U> sauf qu'elle ne contient pa...
int sauvegarder(Sortie &os) const override
Sauvegarde d'un Objet_U sur un flot de sortie Methode a surcharger.
int reprendre(Entree &is) override
Reprise d'un Objet_U sur un flot d'entree Methode a surcharger.
const Type_info & get_info_ptr() const override
Objet_U * operator->() const
const Objet_U & valeur() const
const TRUST_Deriv_Objet_U & operator=(const Objet_U &t)
void deplace(TRUST_Deriv_Objet_U &deriv_obj)
void set_Objet_U_ptr(Objet_U *objet) override
Fait pointer *this sur l'objet *ptr L'adresse peut etre nulle (pointeur nul).
int duplique() const override
const _CLASSE_ & valeur() const
Sortie & printOn(Sortie &os) const override
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
TRUST_Deriv(const TRUST_Deriv &t)
const _CLASSE_ * operator->() const
const TRUST_Deriv & operator=(const _CLASSE_ &t)
Entree & typer_lire_simple(Entree &is, const char *msg="??")
Entree & typer_lire(Entree &is, const char *b="??", const char *msg="??")
unsigned taille_memoire() const override
const TRUST_Deriv & operator=(const TRUST_Deriv &t)
void set_Objet_U_ptr(Objet_U *objet) override
Fait pointer *this sur l'objet *ptr L'adresse peut etre nulle (pointeur nul).
Entree & readOn(Entree &is) override
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
const Type_info & get_info_ptr() const override
TRUST_Deriv(const _CLASSE_ &t)
modelise une information de type pour les Objet_U