8#ifndef INCLUDED_BSLALG_NOTHROWMOVABLEWRAPPER
9#define INCLUDED_BSLALG_NOTHROWMOVABLEWRAPPER
231#include <bslscm_version.h>
284 struct DummyAllocator {
432 BSLMF_ASSERT(!
sizeof(TYPE) &&
"Cannot wrap a wrapped object");
439 BSLMF_ASSERT(!
sizeof(TYPE) &&
"Cannot wrap a wrapped object");
509 d_buffer.address(), (
void *)0, original.
unwrap());
520 d_buffer.address(), alloc, original.
unwrap());
553 d_buffer.object().~TYPE();
562 return d_buffer.object();
571 return d_buffer.object().allocator();
579 return d_buffer.object();
Definition bslma_bslallocator.h:588
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:329
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:327
BSLMF_NESTED_TRAIT_DECLARATION_IF(NothrowMovableWrapper, bslmf::UsesAllocatorArgT, bslma::UsesBslmaAllocator< TYPE >::value)
Definition bslmf_movableref.h:752
~NothrowMovableWrapper()
Destroy this object, invoking TYPEs destructor.
Definition bslalg_nothrowmovablewrapper.h:551
NothrowMovableWrapper()
Definition bslalg_nothrowmovablewrapper.h:451
ValueType & unwrap()
Definition bslalg_nothrowmovablewrapper.h:560
allocator_type get_allocator() const
Definition bslalg_nothrowmovablewrapper.h:569
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
#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
#define BSLS_KEYWORD_NOEXCEPT
Definition bsls_keyword.h:674
Definition bdlc_flathashmap.h:2218
Definition bslmf_allocatorargt.h:433
Definition bslmf_conditional.h:123
Definition bslmf_integralconstant.h:261
Definition bslmf_isarray.h:168
Definition bslmf_isfunction.h:232
Definition bslmf_isnothrowmoveconstructible.h:361
remove_const< typenameremove_volatile< t_TYPE >::type >::type type
Definition bslmf_removecv.h:128
static void construct(TARGET_TYPE *address, const ALLOCATOR &allocator)
Definition bslma_constructionutil.h:1244
Definition bslma_usesbslmaallocator.h:344
Definition bslmf_isbitwisemoveable.h:718
Definition bslmf_movableref.h:821
Definition bslmf_movableref.h:795
static MovableRef< t_TYPE > move(t_TYPE &reference) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1067
static t_TYPE & access(t_TYPE &ref) BSLS_KEYWORD_NOEXCEPT
Definition bslmf_movableref.h:1039
Definition bslmf_usesallocatorargt.h:100
Definition bsls_objectbuffer.h:277