8#ifndef INCLUDED_BSLMA_STDTESTALLOCATOR
9#define INCLUDED_BSLMA_STDTESTALLOCATOR
57#include <bslscm_version.h>
128 template <
class ANY_TYPE>
163 template <
class ANY_TYPE>
199 template <
class ELEMENT_TYPE>
204 template <
class ELEMENT_TYPE>
240template <
class T1,
class T2>
252template <
class T1,
class T2>
322: d_mechanism(original.mechanism())
328template <
class ANY_TYPE>
331: d_mechanism(rhs.mechanism())
346 return static_cast<pointer>(d_mechanism->allocate(n *
sizeof(TYPE)));
355 d_mechanism->deallocate(p);
359template <
class ELEMENT_TYPE>
363 new (
static_cast<void*
>(address)) ELEMENT_TYPE(val);
367template <
class ELEMENT_TYPE>
371 DestructionUtil::destroy(address);
405 static const std::size_t MAX_NUM_BYTES =
~std::size_t(0);
406 static const std::size_t MAX_NUM_ELEMENTS = MAX_NUM_BYTES /
sizeof(TYPE);
408 return MAX_NUM_ELEMENTS;
412template <
class T1,
class T2>
417 return lhs.mechanism() == rhs.mechanism();
420template <
class T1,
class T2>
425 return ! (lhs == rhs);
433 return lhs.mechanism() == rhs;
441 return ! (lhs == rhs);
449 return lhs == rhs.mechanism();
457 return ! (lhs == rhs);
Definition bslma_allocator.h:545
Definition bslma_stdtestallocator.h:89
std::size_t size_type
Definition bslma_stdtestallocator.h:106
StdTestAllocator()
Definition bslma_stdtestallocator.h:305
BSLMF_NESTED_TRAIT_DECLARATION(StdTestAllocator, bslmf::IsBitwiseEqualityComparable)
void construct(ELEMENT_TYPE *address, const TYPE &val)
Definition bslma_stdtestallocator.h:361
pointer address(reference x) const
Definition bslma_stdtestallocator.h:378
bsl::conditional< bsl::is_void< TYPE >::value, void, TYPE & >::type reference
Definition bslma_stdtestallocator.h:112
BSLMF_NESTED_TRAIT_DECLARATION(StdTestAllocator, bslmf::IsBitwiseMoveable)
TestAllocator * mechanism() const
Definition bslma_stdtestallocator.h:297
bsl::conditional< bsl::is_void< TYPE >::value, void, constTYPE & >::type const_reference
Definition bslma_stdtestallocator.h:115
BSLMF_NESTED_TRAIT_DECLARATION(StdTestAllocator, bslmf::IsBitwiseCopyable)
pointer allocate(size_type n, const void *hint=0)
Definition bslma_stdtestallocator.h:340
void deallocate(pointer p, size_type n=1)
Definition bslma_stdtestallocator.h:351
const TYPE * const_pointer
Definition bslma_stdtestallocator.h:109
const_pointer address(const_reference x) const
void destroy(ELEMENT_TYPE *address)
Definition bslma_stdtestallocator.h:369
TYPE value_type
Definition bslma_stdtestallocator.h:118
StdTestAllocator & operator=(const StdTestAllocator &rhs)
std::ptrdiff_t difference_type
Definition bslma_stdtestallocator.h:107
size_type max_size() const
Definition bslma_stdtestallocator.h:394
TYPE * pointer
Definition bslma_stdtestallocator.h:108
BSLMF_NESTED_TRAIT_DECLARATION(StdTestAllocator, bslma::IsStdAllocator)
Definition bslma_testallocator.h:402
#define BSLMF_ASSERT(expr)
Definition bslmf_assert.h:231
#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_UTIL_ADDRESSOF(OBJ)
Definition bsls_util.h:296
Definition baljsn_encoder_testtypes.h:76
Definition bdldfp_decimal.h:5549
Definition bslmf_conditional.h:123
Definition bslmf_integralconstant.h:261
Definition bslmf_issame.h:146
Definition bslma_default.h:745
Definition bslma_isstdallocator.h:202
Definition bslma_stdtestallocator.h:129
StdTestAllocator< ANY_TYPE > other
Definition bslma_stdtestallocator.h:131
Definition bslmf_isbitwisecopyable.h:298
Definition bslmf_isbitwiseequalitycomparable.h:500
Definition bslmf_isbitwisemoveable.h:718