class A
{
public:
A(){}
private:
int i;
};
A a[8];
В стандарте С++ 11 8.5.1.1 говорится:
"Агрегат - это массив или класс (раздел 9) без конструкторов, предоставляемых пользователем (12.1), без привязки или выравнивания для нестатических элементов данных (9.2), без частных или защищенных нестатических данных (раздел 11), нет базовых классов (раздел 10) и нет виртуальных функций (10.3).
Как a является массивом, является агрегатом? Я думаю, что нет, но стандарт говорит "да".