43 #ifndef TEUCHOS_PTR_HPP
44 #define TEUCHOS_PTR_HPP
47 #include "Teuchos_PtrDecl.hpp"
54 namespace PtrPrivateUtilityPack {
55 TEUCHOSCORE_LIB_DLL_EXPORT
void throw_null(
const std::string &type_name );
59 template<
class T>
inline
65 template<
class T>
inline
71 template<
class T>
inline
75 ,rcp_(ptr_in.access_rcp())
81 template<
class T2>
inline
85 ,rcp_(ptr_in.access_rcp())
90 template<
class T>
inline
101 template<
class T>
inline
104 debug_assert_not_null();
105 debug_assert_valid_ptr();
110 template<
class T>
inline
113 debug_assert_not_null();
114 debug_assert_valid_ptr();
119 template<
class T>
inline
122 debug_assert_valid_ptr();
127 template<
class T>
inline
134 template<
class T>
inline
143 template<
class T>
inline
149 template<
class T>
inline
156 template<
class T>
inline
159 return ptr_implicit_cast<const T>(*
this);
163 template<
class T>
inline
167 rcp_.access_private_node().assert_valid_ptr(*
this);
175 template<
class T>
inline
177 : ptr_(p.getRawPtr()), rcp_(p)
188 std::ostream& Teuchos::operator<<( std::ostream& out,
const Ptr<T>& p )
192 <<
"ptr="<<(
const void*)(p.
get())
Reference-counted pointer class and non-member templated function implementations.
Simple wrapper class for raw pointers to single objects where no persisting relationship exists.
const Ptr< T > & assert_not_null() const
Throws std::logic_error if this->get()==NULL, otherwise returns reference to *this.
Ptr< const T > getConst() const
Return a Ptr<const T> version of *this.
T * getRawPtr() const
Get the raw C++ pointer to the underlying object.
Ptr< T > & operator=(const Ptr< T > &ptr)
Shallow copy of the underlying pointer.
bool is_null() const
Return true if the wrapped raw pointer is NULL, else return false.
T * operator->() const
Pointer (->) access to members of underlying object.
T & operator*() const
Dereference the underlying object.
T * get() const
Get the raw C++ pointer to the underlying object.
const Ptr< T > ptr() const
Return a copy of *this.
Ptr(ENull null_in=null)
Default construct to NULL.
Smart reference counting pointer class for automatic garbage collection.
Default traits class that just returns typeid(T).name().
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...