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)
181 #endif // TEUCHOS_DEBUG 188 std::ostream& Teuchos::operator<<( std::ostream& out, const Ptr<T>& p )
191 << TypeNameTraits<RCP<T> >::name() <<
"{" 192 <<
"ptr="<<(
const void*)(p.get())
198 #endif // TEUCHOS_PTR_HPP const Ptr< T > ptr() const
Return a copy of *this.
T & operator*() const
Dereference the underlying object.
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.
Ptr(ENull null_in=null)
Default construct to NULL.
bool is_null() const
Return true if the wrapped raw pointer is NULL, else return false.
Default traits class that just returns typeid(T).name().
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos, as well as a number of utility routines.
T * get() const
Get the raw C++ pointer to the underlying object.
T * operator->() const
Pointer (->) access to members of underlying object.
T * getRawPtr() const
Get the raw C++ pointer to the underlying object.
Reference-counted pointer class and non-member templated function implementations.
Simple wrapper class for raw pointers to single objects where no persisting relationship exists...
Ptr< T > & operator=(const Ptr< T > &ptr)
Shallow copy of the underlying pointer.