Consider the following C++ code:
struct B { }; struct A { A(int); A(A&); // missing const is intentional A(B); operator B
Because you cannot do more than one implicit conversion. You would have to go A::A(A::A(int)::operator B()) to make that work, and that's way too many steps for the compiler to figure out on it's own.
A::A(A::A(int)::operator B())