14.9.2. Avoiding Ambiguous Conversions
If a class has one or more conversions, it is important to ensure that there is only one way to convert from the class type to the target type. If there is more than one way to perform a conversion, it will be hard to write unambiguous code.
There are two ways that multiple conversion paths can occur. The first happens when two classes provide mutual conversions. For example, mutual conversions exist when a class
A defines a converting constructor that takes an object of class
B itself defines a conversion operator to type
The second way to generate multiple conversion paths is to define multiple ...