|
BDE 4.39.x Production Release
|
#include <bsltf_argumenttype.h>
This class works around a limitation in C++03 whereby initializing a pass-by-value parameter of type bslmf::ArgumentType<N> from a MovableRef<bslmf::ArgumentType<N> > results in an ambiguous conversion sequence (i.e., MovableRef::operator T& vs. ArgumentType(MovableRef) are equally good conversions). Pass-by-value use cases (e.g., recording the value category of multiple function arguments) can use this class as a parameter type, instead, eliminating the ambiguity because MovableRef<AT> -> AT& -> ArgumentTypeByValue requires two user-defined conversions and is therefore eliminated during overload resolution.
Public Member Functions | |
| ArgumentTypeByValue (ArgumentTypeDefault=ArgumentTypeDefault()) | |
| ArgumentTypeByValue (ArgumentType< N > const &original) | |
| ArgumentTypeByValue (ArgumentType< N > &original) | |
| ArgumentTypeByValue (bslmf::MovableRef< ArgumentType< N > > original) | |
Public Member Functions inherited from bsltf::ArgumentType< N > | |
| ArgumentType (ArgumentTypeDefault=ArgumentTypeDefault()) | |
| ArgumentType (int value) | |
| ArgumentType (ArgumentType &original) | |
| ArgumentType (ArgumentType const &original) | |
| ArgumentType (bslmf::MovableRef< ArgumentType > original) | |
| ~ArgumentType () | |
| ArgumentType & | operator= (ArgumentType &rhs) |
| ArgumentType & | operator= (ArgumentType const &rhs) |
| ArgumentType & | operator= (bslmf::MovableRef< ArgumentType > rhs) |
| ArgumentType & | operator= (int rhs) |
| void | reset () |
| void | set (int value, CopyMoveState::Enum state) |
| operator int () const | |
| CopyMoveState::Enum | copyMoveState () const |
| MoveState::Enum | movedFrom () const |
| MoveState::Enum | movedInto () const |
|
inline |
|
inline |
Initialize the ArgumentType<N> base object from the specified original.
|
inline |
|
inline |