Konvertierung mehrerer impliziter Konstruktoren

Implizite Konstruktorkonvertierung scheint nur mit einer einzigen Konvertierung zu funktionieren.

class A {
public:
    A(std::string s) {}
};
class B {
public:
    B(A a) { }
};

Mit dem obigen Code läuft

B b{std::string("Hey")};

funktioniert gut.

Auf der anderen Seite,

B b{"Hey"};

nicht.

Funktioniert die Konstruktorkonvertierung wirklich nur mit einer einzigen Konvertierung, und warum ist dies der Fall? Um mögliche Mehrdeutigkeiten bei der Bereitstellung unterschiedlicher Konstruktoren zu vermeiden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage