Многократное неявное преобразование конструктора
Кажется, что неявное преобразование конструктора работает только с одним преобразованием.
class A {
public:
A(std::string s) {}
};
class B {
public:
B(A a) { }
};
С приведенным выше кодом, работает
B b{std::string("Hey")};
работает отлично.
С другой стороны,
B b{"Hey"};
не.
Действительно ли преобразование конструктора работает только с одним преобразованием, и почему это так? Чтобы избежать возможной неоднозначности, когда предоставляются разные конструкторы?