User-defined conversions (C++ only)
User-defined conversions allow you to specify object conversions that are implicitly applied by the compiler, in addition to standard built-in type conversions. User-defined conversions can be applied for conversion of initializers, functions arguments, function return values, expression operands, expressions controlling iteration, selection statements, and explicit type conversions.
Note: You
can declare user-defined conversions as deleted functions. For more
information, see Deleted functions (C++11).