BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslstl_sharedptr.h File Reference
#include <bsls_ident.h>
#include <bslscm_version.h>
#include <bslstl_compare.h>
#include <bslstl_hash.h>
#include <bslstl_pair.h>
#include <bslstl_referencewrapper.h>
#include <bslstl_sharedptrallocateinplacerep.h>
#include <bslstl_sharedptrallocateoutofplacerep.h>
#include <bslalg_arraydestructionprimitives.h>
#include <bslalg_arrayprimitives.h>
#include <bslma_allocator.h>
#include <bslma_allocatortraits.h>
#include <bslma_default.h>
#include <bslma_managedptr.h>
#include <bslma_sharedptrinplacerep.h>
#include <bslma_sharedptroutofplacerep.h>
#include <bslma_sharedptrrep.h>
#include <bslma_bslallocator.h>
#include <bslmf_addlvaluereference.h>
#include <bslmf_addpointer.h>
#include <bslmf_conditional.h>
#include <bslmf_enableif.h>
#include <bslmf_haspointersemantics.h>
#include <bslmf_integralconstant.h>
#include <bslmf_isarray.h>
#include <bslmf_isbitwisemoveable.h>
#include <bslmf_isconvertible.h>
#include <bslmf_isfunction.h>
#include <bslmf_ispointer.h>
#include <bslmf_movableref.h>
#include <bslmf_nestedtraitdeclaration.h>
#include <bslmf_removeextent.h>
#include <bslmf_util.h>
#include <bsls_assert.h>
#include <bsls_compilerfeatures.h>
#include <bsls_deprecatefeature.h>
#include <bsls_keyword.h>
#include <bsls_libraryfeatures.h>
#include <bsls_nullptr.h>
#include <bsls_platform.h>
#include <bsls_unspecifiedbool.h>
#include <bsls_util.h>
#include <functional>
#include <memory>
#include <ostream>
#include <stddef.h>
#include <type_traits>
#include <bsls_nativestd.h>

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
 This struct provides a namespace for operations on shared pointers. More...
 
struct  bslstl::SharedPtrNilDeleter
 
struct  bslstl::SharedPtr_DefaultDeleter< bool >
 
struct  bslstl::SharedPtr_ImpUtil
 
struct  bslstl::SharedPtr_ImpUtil::Extent< TYPE, DIM >
 
class  bslstl::SharedPtr_RepProctor
 
struct  bslma::UsesBslmaAllocator< ::bsl::shared_ptr< ELEMENT_TYPE > >
 
struct  bslmf::HasPointerSemantics< ::bsl::shared_ptr< ELEMENT_TYPE > >
 
struct  bslmf::IsBitwiseMoveable< ::bsl::shared_ptr< ELEMENT_TYPE > >
 
struct  bslmf::IsBitwiseMoveable< ::bsl::weak_ptr< ELEMENT_TYPE > >
 

Macros

#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 &&!is_pointer< ALLOC >::value, shared_ptr< ELEMENT_TYPE > >::type bsl::allocate_shared (ALLOC basicAllocator, ARGS &&... args)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_bounded_array< ARRAY_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC basicAllocator)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_bounded_array< ARRAY_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC basicAllocator, const typename remove_extent< ARRAY_TYPE >::type &value)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_unbounded_array< ARRAY_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC basicAllocator, size_t numElements)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_unbounded_array< ARRAY_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC basicAllocator, size_t numElements, const typename remove_extent< ARRAY_TYPE >::type &value)
 
template<class ELEMENT_TYPE , class ALLOC >
enable_if<!is_array< ELEMENT_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ELEMENT_TYPE > >::type bsl::allocate_shared_for_overwrite (ALLOC basicAllocator)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_bounded_array< ARRAY_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared_for_overwrite (ALLOC basicAllocator)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_unbounded_array< ARRAY_TYPE >::value &&!is_pointer< ALLOC >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared_for_overwrite (ALLOC basicAllocator, size_t numElements)
 
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 ARRAY_TYPE , class ALLOC >
enable_if< is_bounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC *basicAllocator)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_bounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC *basicAllocator, const typename remove_extent< ARRAY_TYPE >::type &value)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_unbounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC *basicAllocator, size_t numElements)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_unbounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared (ALLOC *basicAllocator, size_t numElements, const typename remove_extent< ARRAY_TYPE >::type &value)
 
template<class ELEMENT_TYPE , class ALLOC >
enable_if<!is_array< ELEMENT_TYPE >::value, shared_ptr< ELEMENT_TYPE > >::type bsl::allocate_shared_for_overwrite (ALLOC *basicAllocator)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_bounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared_for_overwrite (ALLOC *basicAllocator)
 
template<class ARRAY_TYPE , class ALLOC >
enable_if< is_unbounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::allocate_shared_for_overwrite (ALLOC *basicAllocator, size_t numElements)
 
template<class ELEMENT_TYPE , class... ARGS>
bsl::enable_if<!bsl::is_array< ELEMENT_TYPE >::value, bsl::shared_ptr< ELEMENT_TYPE > >::type bsl::make_shared (ARGS &&... args)
 
template<class ARRAY_TYPE >
enable_if< is_bounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::make_shared ()
 
template<class ARRAY_TYPE >
enable_if< is_bounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::make_shared (const typename remove_extent< ARRAY_TYPE >::type &value)
 
template<class ARRAY_TYPE >
enable_if< is_unbounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::make_shared (size_t numElements)
 
template<class ARRAY_TYPE >
enable_if< is_unbounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::make_shared (size_t numElements, const typename remove_extent< ARRAY_TYPE >::type &value)
 
template<class ELEMENT_TYPE >
enable_if<!is_array< ELEMENT_TYPE >::value, shared_ptr< ELEMENT_TYPE > >::type bsl::make_shared_for_overwrite ()
 
template<class ARRAY_TYPE >
enable_if< is_bounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::make_shared_for_overwrite ()
 
template<class ARRAY_TYPE >
enable_if< is_unbounded_array< ARRAY_TYPE >::value, shared_ptr< ARRAY_TYPE > >::type bsl::make_shared_for_overwrite (size_t numElements)
 
template<class ELEMENT_TYPE >
void bsl::swap (weak_ptr< ELEMENT_TYPE > &a, weak_ptr< ELEMENT_TYPE > &b) BSLS_KEYWORD_NOEXCEPT
 

Detailed Description

The content of this file has been pre-processed for Doxygen.