Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SALOME Mesh Module Developer
Use the SpherePadder SMESH Plugin
Todo List
Packages
Data Structures
Files
File List
idl
src
Controls
Driver
DriverCGNS
DriverDAT
DriverGMF
DriverMED
DriverSTL
DriverUNV
MEDWrapper
Base
MED_Algorithm.cxx
MED_Algorithm.hxx
MED_Common.hxx
MED_CoordUtils.cxx
MED_CoordUtils.hxx
MED_GaussDef.cxx
MED_GaussDef.hxx
MED_GaussUtils.cxx
MED_GaussUtils.hxx
MED_SharedPtr.hxx
MED_SliceArray.hxx
MED_Structures.cxx
MED_Structures.hxx
MED_TStructures.hxx
MED_TWrapper.hxx
MED_Utilities.cxx
MED_Utilities.hxx
MED_Vector.hxx
MED_Wrapper.cxx
MED_Wrapper.hxx
MED_WrapperBase.hxx
Factory
V2_2
MEFISTO2
OBJECT
PluginUtils
SMDS
SMESH
SMESH_I
SMESH_SWIG_WITHIHM
SMESHClient
SMESHDS
SMESHFiltersSelection
SMESHGUI
SMESHUtils
StdMeshers
StdMeshers_I
StdMeshersGUI
Tools
Globals
MED_SharedPtr.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
#ifndef MED_SharedPtr_HeaderFile
23
#define MED_SharedPtr_HeaderFile
24
25
#include <boost/shared_ptr.hpp>
26
27
namespace
MED
28
{
29
31
36
template
<
class
T>
class
SharedPtr
:
public
boost::shared_ptr<T>
37
{
38
public
:
40
SharedPtr
() {}
41
43
template
<
class
Y>
44
explicit
SharedPtr
(Y * p):
45
boost::shared_ptr<T>(p)
46
{}
47
49
template
<
class
Y>
50
SharedPtr
(
SharedPtr<Y>
const
& r):
51
boost::shared_ptr<T>(boost::dynamic_pointer_cast<T,Y>(r))
52
{}
53
55
template
<
class
Y>
56
SharedPtr
&
57
operator=
(
SharedPtr<Y>
const
& r)
58
{
59
SharedPtr<T>
(r).swap(*
this
);
60
return
*
this
;
61
}
62
64
template
<
class
Y>
65
SharedPtr
&
66
operator()
(Y * p)
// Y must be complete
67
{
68
return
operator
=<Y>(
SharedPtr<Y>
(p));
69
}
70
72
template
<
class
Y>
73
SharedPtr
&
74
operator()
(
SharedPtr<Y>
const
& r)
// Y must be complete
75
{
76
return
operator
=<Y>(
SharedPtr<Y>
(r));
77
}
78
80
operator
const
T& ()
const
81
{
82
return
*(this->
get
());
83
}
84
86
operator
T& ()
87
{
88
return
*(this->
get
());
89
}
90
};
91
92
}
93
94
95
#endif
src
MEDWrapper
Base
MED_SharedPtr.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS