explicit conversion to 'type' is ambiguous
The type conversion could produce more than one result. If you’ve encountered this error on code which compiled with an earlier version of Visual C++, please read Technote: Improved Conformance to ANSI C++ for more information.
Ambiguous conversion can result when converting from a class (or structure) type based on multiple inheritance. If the same base class is inherited more than once, the conversion function or operator must specify which of the inherited classes to use in the conversion. The scope resolution operator (::) can be used to do this.
Ambiguous conversion can also be caused when a conversion operator and a constructor making the same conversion have been defined.