8#ifndef INCLUDED_BSLMA_DEALLOCATEOBJECTPROCTOR
9#define INCLUDED_BSLMA_DEALLOCATEOBJECTPROCTOR
234#include <bslscm_version.h>
252template <
class ALLOCATOR,
class TYPE>
253struct DeallocateObjectProctor_PtrType;
272template <
class ALLOCATOR,
class TYPE =
typename ALLOCATOR::value_type>
282 ALLOCATOR d_allocator;
284 std::size_t d_numObjects;
338 void reset(PtrType p, std::size_t n = 1);
360template <
class ALLOCATOR,
class TYPE>
365 template rebind_traits<TYPE>::pointer
type;
371template <
class ALLOCATOR,
class TYPE>
383template <
class ALLOCATOR,
class TYPE>
390template <
class ALLOCATOR,
class TYPE>
392void DeallocateObjectProctor<ALLOCATOR, TYPE>::doDeallocate(
bsl::true_type)
399 d_allocator->deallocate(d_object_p);
403template <
class ALLOCATOR,
class TYPE>
406 const ALLOCATOR& allocator,
409 : d_allocator(allocator), d_object_p(p), d_numObjects(n)
413template <
class ALLOCATOR,
class TYPE>
417 : d_allocator(
MoveUtil::access(original).d_allocator)
418 , d_object_p(
MoveUtil::access(original).d_object_p)
419 , d_numObjects(
MoveUtil::access(original).d_numObjects)
424template <
class ALLOCATOR,
class TYPE>
439template <
class ALLOCATOR,
class TYPE>
441typename DeallocateObjectProctor<ALLOCATOR, TYPE>::PtrType
444 PtrType ret = d_object_p;
445 d_object_p = PtrType();
449template <
class ALLOCATOR,
class TYPE>
458template <
class ALLOCATOR,
class TYPE>
460typename DeallocateObjectProctor<ALLOCATOR, TYPE>::PtrType
Definition bslma_deallocateobjectproctor.h:273
PtrType ptr() const
Definition bslma_deallocateobjectproctor.h:461
void reset(PtrType p, std::size_t n=1)
Definition bslma_deallocateobjectproctor.h:451
~DeallocateObjectProctor()
Definition bslma_deallocateobjectproctor.h:426
PtrType release()
Definition bslma_deallocateobjectproctor.h:442
Definition bslmf_movableref.h:752
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_DELETED
Definition bsls_keyword.h:651
Definition baljsn_encoder_testtypes.h:76
Definition bslma_allocatortraits.h:1089
Definition bslmf_integralconstant.h:261
Definition bslmf_ispointer.h:138
static void deallocateObject(const t_ALLOCATOR &allocator, t_POINTER p, std::size_t n=1)
Definition bslma_allocatorutil.h:949
TYPE * type
Definition bslma_deallocateobjectproctor.h:375
Definition bslma_deallocateobjectproctor.h:362
bsl::allocator_traits< ALLOCATOR >::template rebind_traits< TYPE >::pointer type
Definition bslma_deallocateobjectproctor.h:365
Definition bslmf_movableref.h:795
static t_TYPE & access(t_TYPE &ref) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1039