Référence à une instance. Plus de détails...
#include <arccore/base/Ref.h>
Fonctions membres publiques | |
| template<typename T> | |
| Ref (const Ref< T > &rhs) noexcept | |
| Construit une référence issue d'une autre référence sur un type compatible. | |
| Ref (const ThatClass &rhs)=default | |
| ThatClass & | operator= (const ThatClass &rhs)=default |
Fonctions membres publiques hérités de Arcane::RefImpl< InstanceType, Ref< InstanceType >, RefTraits< InstanceType >::TagId > | |
| RefImpl (const Ref< T > &rhs) noexcept | |
| Construit une référence issue d'une autre référence sur un type compatible. | |
| RefImpl (const ThatClass &rhs)=default | |
| ThatClass & | operator= (const ThatClass &rhs)=default |
| operator bool () const | |
| InstanceType * | get () const |
Instance associée ou nullptr si aucune. | |
| bool | isNull () const |
| Indique si le compteur référence une instance non nulle. | |
| InstanceType * | operator-> () const |
| void | reset () |
| Positionne l'instance au pointeur nul. | |
| InstanceType * | _release () |
| const ImplType & | _internalInstance () const |
| RefImpl (const Ref< T > &rhs) noexcept | |
| Construit une référence issue d'une autre référence sur un type compatible. | |
| RefImpl (const ThatClass &rhs)=default | |
| ThatClass & | operator= (const ThatClass &rhs)=default |
| operator bool () const | |
| InstanceType * | get () const |
Instance associée ou nullptr si aucune. | |
| bool | isNull () const |
| Indique si le compteur référence une instance non nulle. | |
| InstanceType * | operator-> () const |
| void | reset () |
| Positionne l'instance au pointeur nul. | |
| InstanceType * | _release () |
| const ImplType & | _internalInstance () const |
Fonctions membres publiques statiques | |
| static ThatClass | create (InstanceType *t) |
| template<typename PointerType, typename... Args> | |
| static Ref< InstanceType > | createRef (Args &&... args) |
| static ThatClass | createWithHandle (InstanceType *t, Internal::ExternalRef handle) |
| static ThatClass | _createNoDestroy (InstanceType *t) |
Membres hérités additionnels | |
Types publics hérités de Arcane::RefImpl< InstanceType, Ref< InstanceType >, RefTraits< InstanceType >::TagId > | |
| using | ThatClass |
| using | ImplType |
Attributs publics statiques hérités de Arcane::RefImpl< InstanceType, Ref< InstanceType >, RefTraits< InstanceType >::TagId > | |
| static constexpr int | RefType |
| static constexpr int | RefType |
Référence à une instance.
Cette classe utilise un compteur de référence pour gérer la durée de vie d'une instance C++. Elle fonctionne de manière similaire à std::shared_ptr.
Lorsque la dernière instance de cette classe est détruite, l'instance référencée est détruite. La manière de détruire l'instance associée est spécifié lors de la création de la première référence via l'appel à une des méthodes create() ou createWithHandle().
Il existe deux implémentation possibles pour compter les références. Par défaut, on utilise 'std::shared_ptr'. Il est aussi possible d'utiliser un compteur de référence interne à la classe ce qui permet d'être compatible avec la classe ReferenceCounter et aussi de pouvoir récupérer une référence à partir de l'instance elle même. Cette deuxième implémentation est accessible en spécialisant le type RefTraits pour qu'il définisse un un type ReferenceCounterTagType valant ReferenceCounterTag.
Définition à la ligne 318 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinenoexcept |
Construit une référence issue d'une autre référence sur un type compatible.
La conversion est autorisée si on peut construire une instance de 'ImplType' à partir de celle de celle de Ref<T>::ImplType.
Définition à la ligne 350 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Définition à la ligne 392 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Définition à la ligne 369 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Définition à la ligne 376 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Définition à la ligne 387 du fichier arccore/src/base/arccore/base/Ref.h.