This unconstrained (value‐semantic) attribute class that uses a bslma::Allocator to supply memory and defines the type trait bslma::UsesBslmaAllocator. This class is primarily provided to facilitate testing of templates by defining a simple type representative of user‐defined types having an allocator. See the section for information on the class attributes.

Synopsis

Declared in <bsltf_wellbehavedmoveonlyalloctesttype.h>

class WellBehavedMoveOnlyAllocTestType;

Member Functions

Name

Description

WellBehavedMoveOnlyAllocTestType [constructor]

Constructors

~WellBehavedMoveOnlyAllocTestType [destructor]

Destroy this object.

operator=

Assign to this object the value of the specified rhs object, and return a reference providing modifiable access to this object. If rhs is a reference to this object, there are no other effects; otherwise, the object referenced by rhs will be reset to a default constructed state, rhs shall be in a movedFrom state, and this object will be in a movedTo state. No allocations shall occur (so no exception will be thrown) unless this object and rhs have different allocators. Note that the moved‐from state is specified, rather than "valid but unspecified", as this type is intended for verifying test drivers that want to ensure that moves occur correctly where expected.

allocator

Return the allocator used by this object to supply memory.

data

Return the value of the data attribute of this object.

movedFrom

Return the move state of this object as source of a move operation.

movedInto

Return the move state of this object as target of a move operation.

setData

Set the data attribute of this object to the specified value.

setMovedInto

Set the moved‐into state of this object to the specified value.

Non-Member Functions

Name

Description

debugprint

Same as the preceding overload for this test type.

getMovedFrom

Return the move‐from state of the specified object.

getMovedInto

Return the move‐into state of the specified object.

operator!=

Return true if the specified lhs and rhs objects do not have the same value, and false otherwise. Two WellBehavedMoveOnlyAllocTestType objects do not have the same value if their data attributes are not the same.

operator==

Return true if the specified lhs and rhs objects have the same value, and false otherwise. Two WellBehavedMoveOnlyAllocTestType objects have the same if their data attributes are the same.

setMovedInto

Set the moved‐into state of the specified object to the specified value.

swap

Exchange the states of the specified a and b. If the allocators match, both a and b will be left in a moved‐into state, otherwise, both will not. If a and b are the same object, this function will have no effect. No allocations shall occur (so no exceptions will be thrown) unless a and b have different allocators.

Created with MrDocs