[#BloombergLP-bsltf-WellBehavedMoveOnlyAllocTestType] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsltf.adoc[bsltf]::WellBehavedMoveOnlyAllocTestType :relfileprefix: ../../ :mrdocs: 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>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class WellBehavedMoveOnlyAllocTestType; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/2constructor-02.adoc[`WellBehavedMoveOnlyAllocTestType`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/2destructor.adoc[`~WellBehavedMoveOnlyAllocTestType`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/operator_assign.adoc[`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. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/allocator.adoc[`allocator`] | Return the allocator used by this object to supply memory. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/data.adoc[`data`] | Return the value of the `data` attribute of this object. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/movedFrom.adoc[`movedFrom`] | Return the move state of this object as source of a move operation. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/movedInto.adoc[`movedInto`] | Return the move state of this object as target of a move operation. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/setData.adoc[`setData`] | Set the `data` attribute of this object to the specified `value`. | xref:BloombergLP/bsltf/WellBehavedMoveOnlyAllocTestType/setMovedInto.adoc[`setMovedInto`] | Set the moved‐into state of this object to the specified `value`. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/debugprint-01d.adoc[`debugprint`] | Same as the preceding overload for this test type. | xref:BloombergLP/bsltf/getMovedFrom-04.adoc[`getMovedFrom`] | Return the move‐from state of the specified `object`. | xref:BloombergLP/bsltf/getMovedInto-08.adoc[`getMovedInto`] | Return the move‐into state of the specified `object`. | xref:BloombergLP/bsltf/operator_not_eq-05f.adoc[`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. | xref:BloombergLP/bsltf/operator_eq-0b99.adoc[`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. | xref:BloombergLP/bsltf/setMovedInto-09.adoc[`setMovedInto`] | Set the moved‐into state of the specified `object` to the specified `value`. | xref:BloombergLP/bsltf/swap-0f.adoc[`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. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#