Implicit constructor conversion only seems to work with a single conversion.
class A {
public:
A(std::string s) {}
};
class B {
public:
B(A a) { }
};
With the above code, running
B b{std::string("Hey")};
works fine.
On the other hand,
B b{"Hey"};
does not.
Does constructor conversion really only work with a single conversion, and why is this the case? To avoid possible ambiguity when different constructors are provided?