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?