struct A {
A(int) {}
};
struct B {
B(A) {}
};
int main() {
B b({0});
}
Конструкция b
дает следующие ошибки:
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&&)
Я ожидал, что B::B(A)
будет вызван, почему это двусмысленно в этом случае?