[#BloombergLP-bsltf-ArgumentType] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsltf.adoc[bsltf]::ArgumentType :relfileprefix: ../../ :mrdocs: Non‐allocating integer wrapper that tracks copy and move operations. == Synopsis Declared in `<bsltf_argumenttype.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<int N> class ArgumentType; ---- == Description 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. == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/ArgumentType/2constructor-08.adoc[`ArgumentType`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bsltf/ArgumentType/2destructor.adoc[`~ArgumentType`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/bsltf/ArgumentType/operator_assign-09.adoc[`operator=`] | Assignment operators | xref:BloombergLP/bsltf/ArgumentType/copyMoveState.adoc[`copyMoveState`] | Return the copy/move state of this object. | xref:BloombergLP/bsltf/ArgumentType/movedFrom.adoc[`movedFrom`] | Return whether this object was the source of a move operation. | xref:BloombergLP/bsltf/ArgumentType/movedInto.adoc[`movedInto`] | Return whether this object was the target of a move operation. | xref:BloombergLP/bsltf/ArgumentType/reset.adoc[`reset`] | Set this object to the default‐constructed state. | xref:BloombergLP/bsltf/ArgumentType/set.adoc[`set`] | Set this object's value and copy/move state. | xref:BloombergLP/bsltf/ArgumentType/2conversion.adoc[`operator int`] | Return the value of this object. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bsltf/copyMoveState-05.adoc[BloombergLP::bsltf::copyMoveState]` | Return the copy/move state of the specified `obj`. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/debugprint-01f.adoc[`debugprint`] | Print the specified `object` as a string. |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/ArgumentTypeByValue.adoc[`ArgumentTypeByValue`] | Pass‐by‐value wrapper that avoids a C++03 conversion ambiguity. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#