How does C++ determine implicit conversion/construction of objects few levels deep? for example:
struct A {};
struct B: A {};
struct C { operator B() { return B(); } };
void f(A a) {}
int main(void)
{
f(C());
}
Does it create tree of all possible conversions and chooses appropriate terminal? Something else? Thanks