8#ifndef INCLUDED_BSLSTL_SHAREDPTRALLOCATEOUTOFPLACEREP
9#define INCLUDED_BSLSTL_SHAREDPTRALLOCATEOUTOFPLACEREP
239#include <bslscm_version.h>
260template <
class TYPE,
class DELETER,
class ALLOCATOR>
268 OriginalTraits::template rebind_traits<SharedPtrAllocateOutofplaceRep>
270 typedef typename AllocatorTraits::allocator_type Allocator;
275 Allocator d_allocator;
293 const DELETER& deleter,
294 const ALLOCATOR& basicAllocator);
314 const DELETER& deleter,
315 const ALLOCATOR& basicAllocator);
366template <
class TYPE,
class DELETER>
373 const DELETER& d_deleter;
389 const DELETER& deleter);
410template <
class TYPE,
class DELETER,
class ALLOCATOR>
414 const DELETER& deleter,
415 const ALLOCATOR& basicAllocator)
418, d_allocator(basicAllocator)
422template <
class TYPE,
class DELETER,
class ALLOCATOR>
424SharedPtrAllocateOutofplaceRep<TYPE, DELETER, ALLOCATOR>::
425~SharedPtrAllocateOutofplaceRep()
430template <
class TYPE,
class DELETER,
class ALLOCATOR>
431SharedPtrAllocateOutofplaceRep<TYPE, DELETER, ALLOCATOR> *
434 const DELETER& deleter,
435 const ALLOCATOR& basicAllocator)
440 Allocator alloc(basicAllocator);
451template <
class TYPE,
class DELETER,
class ALLOCATOR>
459template <
class TYPE,
class DELETER,
class ALLOCATOR>
463 Allocator alloc(d_allocator);
465 AllocatorTraits::deallocate(alloc,
this, 1);
468template <
class TYPE,
class DELETER,
class ALLOCATOR>
472 const std::type_info& type)
474 return typeid(d_deleter) == type
480template <
class TYPE,
class DELETER,
class ALLOCATOR>
485 return const_cast<void *
>(
static_cast<const void *
>(d_ptr_p));
488template <
class TYPE,
class DELETER,
class ALLOCATOR>
500template <
class TYPE,
class DELETER>
504 const DELETER& deleter)
510template <
class TYPE,
class DELETER>
525template <
class TYPE,
class DELETER>
Definition bslstl_sharedptrallocateoutofplacerep.h:367
~SharedPtrAllocateOutofplaceRep_InitProctor()
Definition bslstl_sharedptrallocateoutofplacerep.h:513
void release()
Release from management the object referred to by this proctor.
Definition bslstl_sharedptrallocateoutofplacerep.h:527
Definition bslstl_sharedptrallocateoutofplacerep.h:262
void disposeRep() BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:461
void disposeObject() BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:453
void * originalPtr() const BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:483
TYPE * ptr() const
Definition bslstl_sharedptrallocateoutofplacerep.h:490
void * getDeleter(const std::type_info &type) BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:471
static SharedPtrAllocateOutofplaceRep * makeOutofplaceRep(TYPE *ptr, const DELETER &deleter, const ALLOCATOR &basicAllocator)
Definition bslstl_sharedptrallocateoutofplacerep.h:432
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_OVERRIDE
Definition bsls_keyword.h:653
Definition bslstl_algorithm.h:82
Definition bslma_allocatortraits.h:1061
static TYPE * addressOf(TYPE &obj)
Definition bsls_util.h:305