At most one user-defined conversion (constructor or conversion function)
is implicitly applied to a single value.
[Example 1: struct X {operatorint();
};
struct Y {operator X();
};
Y a;
int b = a; // error: no viable conversion (a.operator X().operator int() not considered)int c = X(a); // OK, a.operator X().operator int() — end example]