Arcane  v4.1.11.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >

Implémentation de la référence à une instance. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/Ref.h>

+ Graphe d'héritage de Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >:
+ Graphe de collaboration de Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >:

Classes

class  BasicDeleter
 
class  Deleter
 

Types publics

using ThatClass = RefImpl<InstanceType, RefClassType, ImplTagId>
 
using ImplType = RefTraitsTagId<InstanceType, ImplTagId>::ImplType
 

Fonctions membres publiques

template<typename T, typename = _IsRefConstructible<typename RefImpl<T, Ref<T>, ImplTagId>::ImplType>>
 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.
 
template<typename T = ThatClass, typename std::enable_if_t< T::RefType==REF_TAG_SHARED_PTR, bool > = true>
InstanceType * _release ()
 Libère le pointeur du compteur de référence sans le détruire. Cela n'est autorisé que si l'implémentation utiliser 'std::shared_ptr'.
 
const ImplType & _internalInstance () const
 

Attributs publics statiques

static constexpr int RefType = RefTraitsTagId<InstanceType, ImplTagId>::RefType
 

Types privés

template<typename... _Args>
using _IsRefConstructible = typename std::enable_if<std::is_constructible<ImplType, _Args...>::value>::type
 

Fonctions membres privées

 RefImpl (InstanceType *t)
 
 RefImpl (InstanceType *t, Internal::ExternalRef handle)
 
 RefImpl (InstanceType *t, bool no_destroy)
 
 RefImpl (ImplType &&t)
 

Fonctions membres privées statiques

static Deleter _createBasicDeleter (std::shared_ptr< InstanceType > *)
 
static BasicDeleterBase _createBasicDeleter (impl::ReferenceCounterWrapper< InstanceType > *)
 
static Deleter_getDeleter (std::shared_ptr< InstanceType > &v)
 
static DeleterBase_getDeleter (impl::ReferenceCounterWrapper< InstanceType > &v)
 

Attributs privés

ImplType m_instance
 

Amis

template<typename T>
class Ref
 
bool operator== (const ThatClass &a, const ThatClass &b)
 
bool operator!= (const ThatClass &a, const ThatClass &b)
 
bool operator< (const ThatClass &a, const ThatClass &b)
 
bool operator! (const ThatClass &a)
 

Description détaillée

template<typename InstanceType, typename RefClassType, int ImplTagId>
class Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >

Implémentation de la référence à une instance.

Voir également
Ref

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

Documentation des définitions de type membres

◆ _IsRefConstructible

template<typename InstanceType, typename RefClassType, int ImplTagId>
template<typename... _Args>
using Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_IsRefConstructible = typename std::enable_if<std::is_constructible<ImplType, _Args...>::value>::type
private

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

◆ ImplType

template<typename InstanceType, typename RefClassType, int ImplTagId>
using Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::ImplType = RefTraitsTagId<InstanceType, ImplTagId>::ImplType

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

◆ ThatClass

template<typename InstanceType, typename RefClassType, int ImplTagId>
using Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::ThatClass = RefImpl<InstanceType, RefClassType, ImplTagId>

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

Documentation des constructeurs et destructeur

◆ RefImpl() [1/5]

template<typename InstanceType, typename RefClassType, int ImplTagId>
Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::RefImpl ( InstanceType * t)
inlineexplicitprivate

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

◆ RefImpl() [2/5]

template<typename InstanceType, typename RefClassType, int ImplTagId>
Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::RefImpl ( InstanceType * t,
Internal::ExternalRef handle )
inlineprivate

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

◆ RefImpl() [3/5]

template<typename InstanceType, typename RefClassType, int ImplTagId>
Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::RefImpl ( InstanceType * t,
bool no_destroy )
inlineprivate

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

◆ RefImpl() [4/5]

template<typename InstanceType, typename RefClassType, int ImplTagId>
Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::RefImpl ( ImplType && t)
inlineprivate

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

◆ RefImpl() [5/5]

template<typename InstanceType, typename RefClassType, int ImplTagId>
template<typename T, typename = _IsRefConstructible<typename RefImpl<T, Ref<T>, ImplTagId>::ImplType>>
Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::RefImpl ( const Ref< T > & rhs)
inlineexplicitnoexcept

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 209 du fichier arccore/src/base/arccore/base/Ref.h.

Documentation des fonctions membres

◆ _createBasicDeleter() [1/2]

template<typename InstanceType, typename RefClassType, int ImplTagId>
static BasicDeleterBase Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_createBasicDeleter ( impl::ReferenceCounterWrapper< InstanceType > * )
inlinestaticprivate

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

◆ _createBasicDeleter() [2/2]

template<typename InstanceType, typename RefClassType, int ImplTagId>
static Deleter Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_createBasicDeleter ( std::shared_ptr< InstanceType > * )
inlinestaticprivate

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

◆ _getDeleter() [1/2]

template<typename InstanceType, typename RefClassType, int ImplTagId>
static DeleterBase * Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_getDeleter ( impl::ReferenceCounterWrapper< InstanceType > & v)
inlinestaticprivate

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

◆ _getDeleter() [2/2]

template<typename InstanceType, typename RefClassType, int ImplTagId>
static Deleter * Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_getDeleter ( std::shared_ptr< InstanceType > & v)
inlinestaticprivate

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

◆ _internalInstance()

template<typename InstanceType, typename RefClassType, int ImplTagId>
const ImplType & Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_internalInstance ( ) const
inline

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

◆ _release()

template<typename InstanceType, typename RefClassType, int ImplTagId>
template<typename T = ThatClass, typename std::enable_if_t< T::RefType==REF_TAG_SHARED_PTR, bool > = true>
InstanceType * Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::_release ( )
inline

Libère le pointeur du compteur de référence sans le détruire. Cela n'est autorisé que si l'implémentation utiliser 'std::shared_ptr'.

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

◆ get()

◆ isNull()

template<typename InstanceType, typename RefClassType, int ImplTagId>
bool Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::isNull ( ) const
inline

Indique si le compteur référence une instance non nulle.

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

Référencé par Arcane::SimpleCsvReaderWriter::setInternal(), Arcane::SimpleTableInternalMng::setInternal(), Arcane::SimpleTableInternalComparator::setInternalRef(), Arcane::SimpleTableInternalComparator::setInternalToCompare(), et Arcane::SimpleTableWriterHelper::setReaderWriter().

+ Voici le graphe des appelants de cette fonction :

◆ operator bool()

template<typename InstanceType, typename RefClassType, int ImplTagId>
Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::operator bool ( ) const
inline

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

◆ operator->()

template<typename InstanceType, typename RefClassType, int ImplTagId>
InstanceType * Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::operator-> ( ) const
inline

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

◆ reset()

template<typename InstanceType, typename RefClassType, int ImplTagId>
void Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::reset ( )
inline

Positionne l'instance au pointeur nul.

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

Référencé par Arcane::VariableIOReaderMng::_checkHashFunction().

+ Voici le graphe des appelants de cette fonction :

Documentation des fonctions amies et associées

◆ operator!

template<typename InstanceType, typename RefClassType, int ImplTagId>
bool operator! ( const ThatClass & a)
friend

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

◆ operator!=

template<typename InstanceType, typename RefClassType, int ImplTagId>
bool operator!= ( const ThatClass & a,
const ThatClass & b )
friend

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

◆ operator<

template<typename InstanceType, typename RefClassType, int ImplTagId>
bool operator< ( const ThatClass & a,
const ThatClass & b )
friend

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

◆ operator==

template<typename InstanceType, typename RefClassType, int ImplTagId>
bool operator== ( const ThatClass & a,
const ThatClass & b )
friend

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

◆ Ref

template<typename InstanceType, typename RefClassType, int ImplTagId>
template<typename T>
friend class Ref
friend

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

Documentation des données membres

◆ m_instance

template<typename InstanceType, typename RefClassType, int ImplTagId>
ImplType Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::m_instance
private

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

◆ RefType

template<typename InstanceType, typename RefClassType, int ImplTagId>
int Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::RefType = RefTraitsTagId<InstanceType, ImplTagId>::RefType
staticconstexpr

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


La documentation de cette classe a été générée à partir du fichier suivant :