12#ifndef ARCCORE_BASE_AUTOREF2_H
13#define ARCCORE_BASE_AUTOREF2_H
17#include "arccore/base/ArccoreGlobal.h"
57 _changeValue(from.m_value);
61 : m_value(from.m_value)
63 from.m_value =
nullptr;
69 _changeValue(from.m_value);
76 m_value = from.m_value;
77 from.m_value =
nullptr;
84 _changeValue(new_value);
94 ARCCORE_CHECK_PTR(m_value);
101 ARCCORE_CHECK_PTR(m_value);
106 T*
get()
const {
return m_value; }
108 bool isNull()
const {
return !m_value; }
109 operator bool()
const {
return m_value; }
111 friend bool operator==(
const ThatClass& a,
const ThatClass& b)
113 return a.get() == b.get();
115 friend bool operator!=(
const ThatClass& a,
const ThatClass& b)
117 return a.get() != b.get();
132 m_value->removeRef();
135 void _changeValue(T* new_value)
137 if (m_value == new_value)
146 T* m_value =
nullptr;
ThatClass & operator=(ThatClass &&from) noexcept
Opérateur de déplacement.
AutoRef2(const ThatClass &from)
Construit une référence référant from.
AutoRef2()=default
Construit une instance sans référence.
AutoRef2(ThatClass &&from) noexcept
Construit une référence référant from.
~AutoRef2()
Destructeur. Décrément le compteur de référence de l'objet pointé
ThatClass & operator=(const ThatClass &from)
Opérateur de copie.
T * get() const
Retourne l'objet référé par l'instance.
T & operator*() const
Retourne l'objet référé par l'instance.
ThatClass & operator=(T *new_value)
Affecte à l'instance la value new_value.
T * operator->() const
Retourne l'objet référé par l'instance.
AutoRef2(T *t)
Construit une instance référant t.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-