Quick Links:

bal | bbl | bdl | bsl

Classes | Namespaces | Defines | Functions

bslstl_sharedptr.h File Reference

Provide a generic reference-counted shared pointer wrapper. More...

Go to the source code of this file.

Classes

struct  bslstl::SharedPtr_RepFromExistingSharedPtr
class  bsl::shared_ptr< ELEMENT_TYPE >
class  bsl::weak_ptr< ELEMENT_TYPE >
class  bsl::enable_shared_from_this< ELEMENT_TYPE >
struct  bslstl::SharedPtrUtil
struct  bslstl::SharedPtrNilDeleter
struct  bslstl::SharedPtr_DefaultDeleter< bool >
struct  bslstl::SharedPtr_ImpUtil
class  bslstl::SharedPtr_RepProctor

Namespaces

namespace  bslstl
namespace  bsl

Defines

#define BSLSTL_SHAREDPTR_DECLARE_IF_CONVERTIBLE
#define BSLSTL_SHAREDPTR_DEFINE_IF_CONVERTIBLE
#define BSLSTL_SHAREDPTR_DECLARE_IF_COMPATIBLE
#define BSLSTL_SHAREDPTR_DEFINE_IF_COMPATIBLE
#define BSLSTL_SHAREDPTR_DECLARE_IF_DELETER(FUNCTOR, ARGUMENT)
#define BSLSTL_SHAREDPTR_DEFINE_IF_DELETER(FUNCTOR, ARGUMENT)
#define BSLSTL_SHAREDPTR_DECLARE_IF_NULLPTR_DELETER(FUNCTOR)
#define BSLSTL_SHAREDPTR_DEFINE_IF_NULLPTR_DELETER(FUNCTOR)

Functions

template<class LHS_TYPE , class RHS_TYPE >
bool bsl::operator== (const shared_ptr< LHS_TYPE > &lhs, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE , class RHS_TYPE >
bool bsl::operator!= (const shared_ptr< LHS_TYPE > &lhs, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE , class RHS_TYPE >
bool bsl::operator< (const shared_ptr< LHS_TYPE > &lhs, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE , class RHS_TYPE >
bool bsl::operator> (const shared_ptr< LHS_TYPE > &lhs, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE , class RHS_TYPE >
bool bsl::operator<= (const shared_ptr< LHS_TYPE > &lhs, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE , class RHS_TYPE >
bool bsl::operator>= (const shared_ptr< LHS_TYPE > &lhs, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE >
bool bsl::operator== (const shared_ptr< LHS_TYPE > &lhs, nullptr_t) BSLS_KEYWORD_NOEXCEPT
template<class RHS_TYPE >
bool bsl::operator== (nullptr_t, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE >
bool bsl::operator!= (const shared_ptr< LHS_TYPE > &lhs, nullptr_t) BSLS_KEYWORD_NOEXCEPT
template<class RHS_TYPE >
bool bsl::operator!= (nullptr_t, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE >
bool bsl::operator< (const shared_ptr< LHS_TYPE > &lhs, nullptr_t) BSLS_KEYWORD_NOEXCEPT
template<class RHS_TYPE >
bool bsl::operator< (nullptr_t, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE >
bool bsl::operator<= (const shared_ptr< LHS_TYPE > &lhs, nullptr_t) BSLS_KEYWORD_NOEXCEPT
template<class RHS_TYPE >
bool bsl::operator<= (nullptr_t, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE >
bool bsl::operator> (const shared_ptr< LHS_TYPE > &lhs, nullptr_t) BSLS_KEYWORD_NOEXCEPT
template<class RHS_TYPE >
bool bsl::operator> (nullptr_t, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class LHS_TYPE >
bool bsl::operator>= (const shared_ptr< LHS_TYPE > &lhs, nullptr_t) BSLS_KEYWORD_NOEXCEPT
template<class RHS_TYPE >
bool bsl::operator>= (nullptr_t, const shared_ptr< RHS_TYPE > &rhs) BSLS_KEYWORD_NOEXCEPT
template<class CHAR_TYPE , class CHAR_TRAITS , class ELEMENT_TYPE >
std::basic_ostream< CHAR_TYPE,
CHAR_TRAITS > & 
bsl::operator<< (std::basic_ostream< CHAR_TYPE, CHAR_TRAITS > &stream, const shared_ptr< ELEMENT_TYPE > &rhs)
template<class HASHALG , class ELEMENT_TYPE >
void bsl::hashAppend (HASHALG &hashAlg, const shared_ptr< ELEMENT_TYPE > &input)
template<class ELEMENT_TYPE >
void bsl::swap (shared_ptr< ELEMENT_TYPE > &a, shared_ptr< ELEMENT_TYPE > &b) BSLS_KEYWORD_NOEXCEPT
template<class DELETER , class ELEMENT_TYPE >
DELETER * bsl::get_deleter (const shared_ptr< ELEMENT_TYPE > &p) BSLS_KEYWORD_NOEXCEPT
template<class TO_TYPE , class FROM_TYPE >
shared_ptr< TO_TYPE > bsl::const_pointer_cast (const shared_ptr< FROM_TYPE > &source) BSLS_KEYWORD_NOEXCEPT
template<class TO_TYPE , class FROM_TYPE >
shared_ptr< TO_TYPE > bsl::dynamic_pointer_cast (const shared_ptr< FROM_TYPE > &source) BSLS_KEYWORD_NOEXCEPT
template<class TO_TYPE , class FROM_TYPE >
shared_ptr< TO_TYPE > bsl::static_pointer_cast (const shared_ptr< FROM_TYPE > &source) BSLS_KEYWORD_NOEXCEPT
template<class TO_TYPE , class FROM_TYPE >
shared_ptr< TO_TYPE > bsl::reinterpret_pointer_cast (const shared_ptr< FROM_TYPE > &source) BSLS_KEYWORD_NOEXCEPT
template<class ELEMENT_TYPE , class ALLOC , class... ARGS>
enable_if<!is_array
< ELEMENT_TYPE >::value,
shared_ptr< ELEMENT_TYPE >
>::type 
bsl::allocate_shared (ALLOC basicAllocator, ARGS &&...args)
template<class ELEMENT_TYPE , class ALLOC , class... ARGS>
enable_if<!is_array
< ELEMENT_TYPE >::value,
shared_ptr< ELEMENT_TYPE >
>::type 
bsl::allocate_shared (ALLOC *basicAllocator, ARGS &&...args)
template<class ELEMENT_TYPE , class... ARGS>
enable_if<!is_array
< ELEMENT_TYPE >::value,
shared_ptr< ELEMENT_TYPE >
>::type 
bsl::make_shared (ARGS &&...args)
template<class ELEMENT_TYPE >
void bsl::swap (weak_ptr< ELEMENT_TYPE > &a, weak_ptr< ELEMENT_TYPE > &b) BSLS_KEYWORD_NOEXCEPT

Detailed Description


Define Documentation

#define BSLSTL_SHAREDPTR_DECLARE_IF_CONVERTIBLE
#define BSLSTL_SHAREDPTR_DEFINE_IF_CONVERTIBLE
#define BSLSTL_SHAREDPTR_DECLARE_IF_COMPATIBLE
#define BSLSTL_SHAREDPTR_DEFINE_IF_COMPATIBLE
#define BSLSTL_SHAREDPTR_DECLARE_IF_DELETER (   FUNCTOR,
  ARGUMENT 
)
#define BSLSTL_SHAREDPTR_DEFINE_IF_DELETER (   FUNCTOR,
  ARGUMENT 
)
#define BSLSTL_SHAREDPTR_DECLARE_IF_NULLPTR_DELETER (   FUNCTOR  ) 
#define BSLSTL_SHAREDPTR_DEFINE_IF_NULLPTR_DELETER (   FUNCTOR  )