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;
331 void reset(PtrType p);
352template <
class ALLOCATOR,
class TYPE>
357 template rebind_traits<TYPE>::pointer
type;
363template <
class ALLOCATOR,
class TYPE>
375template <
class ALLOCATOR,
class TYPE>
382template <
class ALLOCATOR,
class TYPE>
384void DeleteObjectProctor<ALLOCATOR, TYPE>::doDelete(
bsl::true_type)
394 d_allocator->deallocate(d_object_p);
398template <
class ALLOCATOR,
class TYPE>
401 const ALLOCATOR& allocator,
403 : d_allocator(allocator), d_object_p(p)
407template <
class ALLOCATOR,
class TYPE>
411 : d_allocator(
MoveUtil::access(original).d_allocator)
412 , d_object_p(
MoveUtil::access(original).d_object_p)
417template <
class ALLOCATOR,
class TYPE>
432template <
class ALLOCATOR,
class TYPE>
434typename DeleteObjectProctor<ALLOCATOR, TYPE>::PtrType
437 PtrType ret = d_object_p;
438 d_object_p = PtrType();
442template <
class ALLOCATOR,
class TYPE>
450template <
class ALLOCATOR,
class TYPE>
452typename DeleteObjectProctor<ALLOCATOR, TYPE>::PtrType
Definition bslma_deleteobjectproctor.h:280
~DeleteObjectProctor()
Destroy and deallocate the managed object, if any.
Definition bslma_deleteobjectproctor.h:419
void reset(PtrType p)
Definition bslma_deleteobjectproctor.h:444
PtrType release()
Definition bslma_deleteobjectproctor.h:435
PtrType ptr() const
Definition bslma_deleteobjectproctor.h:453
Definition bslmf_movableref.h:751
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1762
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_DELETED
Definition bsls_keyword.h:609
Definition balxml_encoderoptions.h:68
Definition bslma_allocatortraits.h:1061
Definition bslmf_integralconstant.h:244
Definition bslmf_ispointer.h:138
static void deleteObject(const t_ALLOCATOR &allocator, t_POINTER p)
Definition bslma_allocatorutil.h:936
TYPE * type
Definition bslma_deleteobjectproctor.h:367
Definition bslma_deleteobjectproctor.h:354
bsl::allocator_traits< ALLOCATOR >::template rebind_traits< TYPE >::pointer type
Definition bslma_deleteobjectproctor.h:357
Definition bslmf_movableref.h:791
static t_TYPE & access(t_TYPE &ref) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1032