8#ifndef INCLUDED_BSLSTL_SHAREDPTRALLOCATEOUTOFPLACEREP
9#define INCLUDED_BSLSTL_SHAREDPTRALLOCATEOUTOFPLACEREP
239#include <bslscm_version.h>
261template <
class TYPE,
class DELETER,
class ALLOCATOR>
269 OriginalTraits::template rebind_traits<SharedPtrAllocateOutofplaceRep>
271 typedef typename AllocatorTraits::allocator_type Allocator;
276 Allocator d_allocator;
295 const DELETER& deleter,
296 const ALLOCATOR& basicAllocator);
318 const DELETER& deleter,
319 const ALLOCATOR& basicAllocator);
373template <
class TYPE,
class DELETER>
380 const DELETER& d_deleter;
396 const DELETER& deleter);
417template <
class TYPE,
class DELETER,
class ALLOCATOR>
421 const DELETER& deleter,
422 const ALLOCATOR& basicAllocator)
425, d_allocator(basicAllocator)
429template <
class TYPE,
class DELETER,
class ALLOCATOR>
431SharedPtrAllocateOutofplaceRep<TYPE, DELETER, ALLOCATOR>::
432~SharedPtrAllocateOutofplaceRep()
437template <
class TYPE,
class DELETER,
class ALLOCATOR>
438SharedPtrAllocateOutofplaceRep<TYPE, DELETER, ALLOCATOR> *
441 const DELETER& deleter,
442 const ALLOCATOR& basicAllocator)
447 Allocator alloc(basicAllocator);
458template <
class TYPE,
class DELETER,
class ALLOCATOR>
466template <
class TYPE,
class DELETER,
class ALLOCATOR>
470 Allocator alloc(d_allocator);
472 AllocatorTraits::deallocate(alloc,
this, 1);
475template <
class TYPE,
class DELETER,
class ALLOCATOR>
479 const std::type_info& type)
481 return typeid(d_deleter) == type
487template <
class TYPE,
class DELETER,
class ALLOCATOR>
495template <
class TYPE,
class DELETER,
class ALLOCATOR>
507template <
class TYPE,
class DELETER>
511 const DELETER& deleter)
517template <
class TYPE,
class DELETER>
532template <
class TYPE,
class DELETER>
Definition bslstl_sharedptrallocateoutofplacerep.h:374
~SharedPtrAllocateOutofplaceRep_InitProctor()
Definition bslstl_sharedptrallocateoutofplacerep.h:520
void release()
Release from management the object referred to by this proctor.
Definition bslstl_sharedptrallocateoutofplacerep.h:534
Definition bslstl_sharedptrallocateoutofplacerep.h:263
void disposeRep() BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:468
void disposeObject() BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:460
void * originalPtr() const BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:490
TYPE * ptr() const
Definition bslstl_sharedptrallocateoutofplacerep.h:497
void * getDeleter(const std::type_info &type) BSLS_KEYWORD_OVERRIDE
Definition bslstl_sharedptrallocateoutofplacerep.h:478
static SharedPtrAllocateOutofplaceRep * makeOutofplaceRep(TYPE *ptr, const DELETER &deleter, const ALLOCATOR &basicAllocator)
Definition bslstl_sharedptrallocateoutofplacerep.h:439
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_OVERRIDE
Definition bsls_keyword.h:695
Definition bslstl_algorithm.h:84
Definition bslma_allocatortraits.h:1089
static BSLS_KEYWORD_CONSTEXPR void * voidify(TYPE *address) BSLS_KEYWORD_NOEXCEPT
Definition bslma_pointerutil.h:350
static TYPE * addressOf(TYPE &obj)
Definition bsls_util.h:312