Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ScopedPtr.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ScopedPtr.h (C) 2000-2006 */
9/* */
10/* Encapsulation d'un pointeur qui se détruit automatiquement. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_SCOPEDPTR_H
13#define ARCANE_UTILS_SCOPEDPTR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Ptr.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
41template<class T>
43: public PtrT<T>
44{
45 public:
46
49
50 public:
51
54
56 explicit ScopedPtrT(T* t) : BaseClass(t) {}
57
59 ~ScopedPtrT() { delete this->m_value; }
60
61 public:
62
65 {
66 if (this!=&from){
67 delete this->m_value;
68 BaseClass::operator=(from);
69 }
70 return (*this);
71 }
72
75 {
76 if (this->m_value!=new_value){
77 delete this->m_value;
78 this->m_value = new_value;
79 }
80 return (*this);
81 }
82};
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87ARCANE_END_NAMESPACE
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92#endif
93
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Encapsulation d'un pointeur.
Definition Ptr.h:45
Encapsulation d'un pointeur qui se détruit automatiquement.
Definition ScopedPtr.h:44
const ScopedPtrT< T > & operator=(const ScopedPtrT< T > &from)
Opérateur de copie.
Definition ScopedPtr.h:64
ScopedPtrT()
Construit une instance sans référence.
Definition ScopedPtr.h:53
~ScopedPtrT()
Détruit l'objet référencé.
Definition ScopedPtr.h:59
const ScopedPtrT< T > & operator=(T *new_value)
Affecte à l'instance la value new_value.
Definition ScopedPtr.h:74
PtrT< T > BaseClass
Type de la classe de base.
Definition ScopedPtr.h:48
ScopedPtrT(T *t)
Construit une instance référant t.
Definition ScopedPtr.h:56