Non-allocating integer wrapper that tracks copy and move operations.
Declared in <bsltf_argumenttype.h>
template<int N>
class ArgumentType;
This class template wraps an integer value and provides implicit conversion to, and explicit conversion from, int, while keeping track of copy and move operations. Its main purpose is for following an argument through a forwarding interface in test drivers. Each value of the template parameter N yields a unique type, enabling a test driver to distingusih them when calling through a function template interface, thereby avoiding ambiguities or accidental switching of arguments in the implementation of test-class methods and constructors or in calls to methods and constructors of a class template under test. When an object of this type is copied or moved (via construction or assignment), the value returned by the copyMoveState accessor (the copy/move state), is updated for the target object and, in the case of a move, for the source object as well.
| Name | Description |
|---|---|
ArgumentType [constructor] | Constructors |
~ArgumentType [destructor] | Destroy this object. |
operator= | Assignment operators |
copyMoveState | Return the copy/move state of this object. |
movedFrom | Return whether this object was the source of a move operation. |
movedInto | Return whether this object was the target of a move operation. |
reset | Set this object to the default-constructed state. |
set | Set this object's value and copy/move state. |
operator int | Return the value of this object. |
| Name | Description |
|---|---|
BloombergLP::bsltf::copyMoveState | Return the copy/move state of the specified obj. |
| Name | Description |
|---|---|
debugprint | Print the specified object as a string. |
| Name | Description |
|---|---|
ArgumentTypeByValue | Pass-by-value wrapper that avoids a C++03 conversion ambiguity. |