Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
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