Arcane  4.1.11.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Ref< InstanceType >

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
 
ThatClassoperator= (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
 
ThatClassoperator= (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
 
ThatClassoperator= (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
 

Description détaillée

template<typename InstanceType>
class Arcane::Ref< InstanceType >

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.

Documentation des constructeurs et destructeur

◆ Ref()

template<typename InstanceType>
template<typename T>
Arcane::Ref< InstanceType >::Ref ( const Ref< T > & rhs)
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.

Documentation des fonctions membres

◆ _createNoDestroy()

template<typename InstanceType>
static ThatClass Arcane::Ref< InstanceType >::_createNoDestroy ( InstanceType * t)
inlinestatic

Définition à la ligne 392 du fichier arccore/src/base/arccore/base/Ref.h.

◆ create()

template<typename InstanceType>
static ThatClass Arcane::Ref< InstanceType >::create ( InstanceType * t)
inlinestatic

Définition à la ligne 369 du fichier arccore/src/base/arccore/base/Ref.h.

◆ createRef()

template<typename InstanceType>
template<typename PointerType, typename... Args>
static Ref< InstanceType > Arcane::Ref< InstanceType >::createRef ( Args &&... args)
inlinestatic

Définition à la ligne 376 du fichier arccore/src/base/arccore/base/Ref.h.

◆ createWithHandle()

template<typename InstanceType>
static ThatClass Arcane::Ref< InstanceType >::createWithHandle ( InstanceType * t,
Internal::ExternalRef< InstanceType > handle )
inlinestatic

Définition à la ligne 387 du fichier arccore/src/base/arccore/base/Ref.h.


La documentation de cette classe a été générée à partir des fichiers suivants :