Я думаю, что проблема с этим кодом в этой строке:
& { {3, 4}, {5, 6} }
Проблема в том, что {{3, 4}, {5, 6}}
является rvalue (значением, а не объектом), и вы не можете получить адрес rvalue. В конце концов, откуда взяться памяти для этого объекта? Тем не менее, вы можете избежать переписывания этого в
A::B elems[2] = {{3, 4}, {5, 6}};
static A a = {
1,
2,
elems
};
Теперь у вас есть lvalue, на который вы можете указать.