10#ifndef TEUCHOS_RCP_STD_SHAREDPTR_CONVERSIONS_HPP
11#define TEUCHOS_RCP_STD_SHAREDPTR_CONVERSIONS_HPP
13#include "Teuchos_RCPStdSharedPtrConversionsDecl.hpp"
23 const StdSharedPtrRCPDeleter<T>
24 *rcpd = std::get_deleter<StdSharedPtrRCPDeleter<T> >(sptr);
32 RCPNode* existingRCPNode = RCPNodeTracer::getExistingRCPNode(sptr.get());
33 if (existingRCPNode) {
34 return RCP<T>(sptr.get(), RCPNodeHandle(existingRCPNode, RCP_STRONG,
false));
38 return rcpWithDealloc(sptr.get(), DeallocStdSharedPtr<T>(sptr),
true);
46Teuchos::get_shared_ptr(
const RCP<T> &rcp )
49 Ptr<const DeallocStdSharedPtr<T> >
50 dbsp = get_optional_dealloc<DeallocStdSharedPtr<T> >(
rcp);
54 return std::shared_ptr<T>(
rcp.
get(), StdSharedPtrRCPDeleter<T>(rcp));
56 return std::shared_ptr<T>();
Reference-counted pointer class and non-member templated function implementations.
Smart reference counting pointer class for automatic garbage collection.
Ptr< T > ptr() const
Get a safer wrapper raw C++ pointer to the underlying object.
T * get() const
Get the raw C++ pointer to the underlying object.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.