Teuchos - Trilinos Tools Package
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Teuchos_RCPStdSharedPtrConversionsDecl.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Teuchos: Common Tools Package
4
//
5
// Copyright 2004 NTESS and the Teuchos contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef TEUCHOS_RCP_STD_SHAREDPTR_CONVERSIONS_DECL_HPP
11
#define TEUCHOS_RCP_STD_SHAREDPTR_CONVERSIONS_DECL_HPP
12
13
#include "
Teuchos_RCPDecl.hpp
"
14
#include <memory>
15
16
17
namespace
Teuchos
{
18
19
32
33
39
template
<
class
T>
40
class
DeallocStdSharedPtr
41
{
42
public
:
44
DeallocStdSharedPtr
(
const
std::shared_ptr<T> &sptr ) : sptr_(sptr) {}
46
typedef
T
ptr_t
;
48
void
free
( T* ptr_in )
const
{ sptr_.reset(); }
50
const
std::shared_ptr<T>&
ptr
()
const
{
return
sptr_; }
51
private
:
52
mutable
std::shared_ptr<T> sptr_;
53
DeallocStdSharedPtr
();
// Not defined and not to be called!
54
};
55
56
62
template
<
class
T>
63
class
StdSharedPtrRCPDeleter
64
{
65
public
:
67
StdSharedPtrRCPDeleter
(
const
RCP<T>
&
rcp
) : rcp_(
rcp
) {}
69
typedef
void
result_type
;
71
typedef
T *
argument_type
;
73
void
operator()
(T * x)
const
{ rcp_ = null; }
75
const
RCP<T>
&
ptr
()
const
{
return
rcp_; }
76
private
:
77
mutable
RCP<T>
rcp_;
78
StdSharedPtrRCPDeleter
();
// Not defined and not to be called!
79
};
80
81
92
template
<
class
T>
93
RCP<T>
rcp
(
const
std::shared_ptr<T> &sptr );
94
95
107
template
<
class
T>
108
std::shared_ptr<T>
get_shared_ptr
(
const
RCP<T>
&
rcp
);
109
110
115
template
<
class
T>
inline
116
bool
is_null
(
const
std::shared_ptr<T> &p )
117
{
118
return
p.get() == 0;
119
}
120
121
126
template
<
class
T>
inline
127
bool
nonnull
(
const
std::shared_ptr<T> &p )
128
{
129
return
p.get() != 0;
130
}
131
132
133
}
// namespace Teuchos
134
135
136
137
#endif
// TEUCHOS_RCP_STD_SHAREDPTR_CONVERSIONS_DECL_HPP
Teuchos_RCPDecl.hpp
Reference-counted pointer class and non-member templated function implementations.
Teuchos::DeallocStdSharedPtr::ptr
const std::shared_ptr< T > & ptr() const
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:50
Teuchos::DeallocStdSharedPtr::ptr_t
T ptr_t
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:46
Teuchos::DeallocStdSharedPtr::free
void free(T *ptr_in) const
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:48
Teuchos::DeallocStdSharedPtr::DeallocStdSharedPtr
DeallocStdSharedPtr(const std::shared_ptr< T > &sptr)
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:44
Teuchos::RCP
Smart reference counting pointer class for automatic garbage collection.
Definition
Teuchos_RCPDecl.hpp:397
Teuchos::RCP::rcp
RCP< T > rcp(const std::shared_ptr< T > &sptr)
Conversion function that takes in a std::shared_ptr object and spits out a Teuchos::RCP object.
Teuchos::RCP::get_shared_ptr
std::shared_ptr< T > get_shared_ptr(const RCP< T > &rcp)
Conversion function that takes in a Teuchos::RCP object and spits out a std::shared_ptr object.
Teuchos::RCP< T_impl >::RCP
RCP(ENull null_arg=null)
Teuchos::RCP< T_impl >::rcp
RCP< T_impl > rcp(const boost::shared_ptr< T_impl > &sptr)
Teuchos::StdSharedPtrRCPDeleter::argument_type
T * argument_type
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:71
Teuchos::StdSharedPtrRCPDeleter::operator()
void operator()(T *x) const
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:73
Teuchos::StdSharedPtrRCPDeleter::result_type
void result_type
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:69
Teuchos::StdSharedPtrRCPDeleter::StdSharedPtrRCPDeleter
StdSharedPtrRCPDeleter(const RCP< T > &rcp)
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:67
Teuchos::StdSharedPtrRCPDeleter::ptr
const RCP< T > & ptr() const
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:75
Teuchos::is_null
bool is_null(const std::shared_ptr< T > &p)
Returns true if p.get()==NULL.
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:116
Teuchos::nonnull
bool nonnull(const std::shared_ptr< T > &p)
Returns true if p.get()!=NULL.
Definition
Teuchos_RCPStdSharedPtrConversionsDecl.hpp:127
Teuchos
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
Teuchos::rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
Definition
Teuchos_RCPDecl.hpp:1234
Generated by
1.17.0