отношения, к тому, сколько компонентов должен иметь structured binding.
2) Для B он должен иметь 1 компонент.
3) Да, в C++20 разрешили писать B{42} опуская инициализатор для пустой базы, но какое отношение это имеет к structured bindings?
Т.е. я не очень понимаю, как этот пример доказывает, что агрегаты с базами это плохо? Я и без наследования могу сделать так, что число structured binding компонент не совпадает с числом аргументов в {} при инициализации (причем может быть как больше так и меньше):
struct XY { int x, y; };
struct P1 {
int x, y, z;
};
struct P2 {
XY xy;
int z;
};
auto [x1, y1, z1] = P1 { 1, 2 };
auto [x2, y2] = P2 { 1, 2, 3 };
Не соответствовать структуре класса - плохо
Обсуждают сегодня