8#ifndef INCLUDED_BSLMA_DELETEOBJECTPROCTOR
9#define INCLUDED_BSLMA_DELETEOBJECTPROCTOR
240#include <bslscm_version.h>
259template <
class ALLOCATOR,
class TYPE>
260struct DeleteObjectProctor_PtrType;
279template <
class ALLOCATOR,
class TYPE =
typename ALLOCATOR::value_type>
288 ALLOCATOR d_allocator;
334 void reset(PtrType p);
355template <
class ALLOCATOR,
class TYPE>
360 template rebind_traits<TYPE>::pointer
type;
366template <
class ALLOCATOR,
class TYPE>
378template <
class ALLOCATOR,
class TYPE>
385template <
class ALLOCATOR,
class TYPE>
387void DeleteObjectProctor<ALLOCATOR, TYPE>::doDelete(
bsl::true_type)
397 d_allocator->deallocate(d_object_p);
401template <
class ALLOCATOR,
class TYPE>
404 const ALLOCATOR& allocator,
406 : d_allocator(allocator), d_object_p(p)
410template <
class ALLOCATOR,
class TYPE>
414 : d_allocator(
MoveUtil::access(original).d_allocator)
415 , d_object_p(
MoveUtil::access(original).d_object_p)
420template <
class ALLOCATOR,
class TYPE>
435template <
class ALLOCATOR,
class TYPE>
437typename DeleteObjectProctor<ALLOCATOR, TYPE>::PtrType
440 PtrType ret = d_object_p;
441 d_object_p = PtrType();
445template <
class ALLOCATOR,
class TYPE>
453template <
class ALLOCATOR,
class TYPE>
455typename DeleteObjectProctor<ALLOCATOR, TYPE>::PtrType
Definition bslma_deleteobjectproctor.h:280
~DeleteObjectProctor()
Destroy and deallocate the managed object, if any.
Definition bslma_deleteobjectproctor.h:422
void reset(PtrType p)
Definition bslma_deleteobjectproctor.h:447
PtrType release()
Definition bslma_deleteobjectproctor.h:438
PtrType ptr() const
Definition bslma_deleteobjectproctor.h:456
Definition bslmf_movableref.h:752
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#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 deleteObject(const t_ALLOCATOR &allocator, t_POINTER p)
Definition bslma_allocatorutil.h:959
TYPE * type
Definition bslma_deleteobjectproctor.h:370
Definition bslma_deleteobjectproctor.h:357
bsl::allocator_traits< ALLOCATOR >::template rebind_traits< TYPE >::pointer type
Definition bslma_deleteobjectproctor.h:360
Definition bslmf_movableref.h:795
static t_TYPE & access(t_TYPE &ref) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1039