8#ifndef INCLUDED_BSLALG_NOTHROWMOVABLEWRAPPER
9#define INCLUDED_BSLALG_NOTHROWMOVABLEWRAPPER
231#include <bslscm_version.h>
282 struct DummyAllocator {
425 BSLMF_ASSERT(!
sizeof(TYPE) &&
"Cannot wrap a wrapped object");
432 BSLMF_ASSERT(!
sizeof(TYPE) &&
"Cannot wrap a wrapped object");
452 bsl::allocator_arg_t,
468 bsl::allocator_arg_t,
487 bsl::allocator_arg_t,
502 d_buffer.address(), (
void *)0, original.
unwrap());
508 bsl::allocator_arg_t,
513 d_buffer.address(), alloc, original.
unwrap());
531 bsl::allocator_arg_t,
546 d_buffer.object().~TYPE();
555 return d_buffer.object();
564 return d_buffer.object().allocator();
572 return d_buffer.object();
Definition bslma_bslallocator.h:580
Definition bslalg_nothrowmovablewrapper.h:269
BSLMF_NESTED_TRAIT_DECLARATION(NothrowMovableWrapper, bsl::is_nothrow_move_constructible)
BSLMF_NESTED_TRAIT_DECLARATION_IF(NothrowMovableWrapper, bslmf::IsBitwiseMoveable, bslmf::IsBitwiseMoveable< TYPE >::value)
TYPE ValueType
Definition bslalg_nothrowmovablewrapper.h:326
BSLMF_NESTED_TRAIT_DECLARATION_IF(NothrowMovableWrapper, bslma::UsesBslmaAllocator, bslma::UsesBslmaAllocator< TYPE >::value)
bsl::conditional< bslma::UsesBslmaAllocator< TYPE >::value, bsl::allocator< char >, DummyAllocator >::type allocator_type
Definition bslalg_nothrowmovablewrapper.h:324
BSLMF_NESTED_TRAIT_DECLARATION_IF(NothrowMovableWrapper, bslmf::UsesAllocatorArgT, bslma::UsesBslmaAllocator< TYPE >::value)
Definition bslmf_movableref.h:751
~NothrowMovableWrapper()
Destroy this object, invoking TYPEs destructor.
Definition bslalg_nothrowmovablewrapper.h:544
NothrowMovableWrapper()
Definition bslalg_nothrowmovablewrapper.h:444
ValueType & unwrap()
Definition bslalg_nothrowmovablewrapper.h:553
allocator_type get_allocator() const
Definition bslalg_nothrowmovablewrapper.h:562
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:229
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
#define BSLS_KEYWORD_DELETED
Definition bsls_keyword.h:609
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:632
Definition bdlc_flathashmap.h:1805
Definition bslmf_conditional.h:120
Definition bslmf_integralconstant.h:244
Definition bslmf_isarray.h:168
Definition bslmf_isfunction.h:232
Definition bslmf_isnothrowmoveconstructible.h:358
remove_const< typenameremove_volatile< t_TYPE >::type >::type type
Definition bslmf_removecv.h:126
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator)
Definition bslma_constructionutil.h:1243
Definition bslma_usesbslmaallocator.h:343
Definition bslmf_isbitwisemoveable.h:718
Definition bslmf_movableref.h:817
Definition bslmf_movableref.h:791
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1060
static t_TYPE & access(t_TYPE &ref) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1032
Definition bslmf_usesallocatorargt.h:100
Definition bsls_objectbuffer.h:276