Consider the following code:
struct A {
int x;
double y;
};
struct B : public A {};
int main() {
A a {1, 2.3}; // (*)
B b {1, 2.3}; // (**)
}
Line (*) compiles, line (**) doesn't.
Is this because B is not considered an "aggregate type"? If so, why isn't it? If not, what's the reason it can't be constructed this way?