struct A {
A(int) {}
};
struct B {
B(A) {}
};
int main() {
B b({0});
}
The construction of b
gives the following errors:
In function 'int main()':
24:9: error: call of overloaded 'B(<brace-enclosed initializer list>)' is ambiguous
24:9: note: candidates are:
11:2: note: B::B(A)
10:8: note: constexpr B::B(const B&)
10:8: note: constexpr B::B(B&&)
I was expecting B::B(A)
to be called, why is it ambiguous in this case?
Aucun commentaire:
Enregistrer un commentaire