Является ли Demo типом POD в C ++ 03?
struct Demo
{
private:
int x;
int y;
};
C ++ 03, §9p4:
POD-структура - это совокупный класс, который не имеет нестатических элементов данных типа не-POD-структура, не-POD-union (или массив таких типов) или ссылка и не имеет определяемого пользователем оператора присваивания копии и определенного пользователем деструктора.
Прочитав сообщение Стива Джессопа , я считаю, что Demo не является POD, потому что участники являются частными. Однако в Стандарте ничего не говорится о связи между типами POD и модификаторами доступа.
В C ++ 0x Demo - это POD, потому что §9p9 (n3126) говорит:
Структура POD - это класс, который является как тривиальный класс, так и класс стандартного макета , и не имеет нестатических элементов данных типа non-POD struct, не-POD объединение (или массив таких типов).
Демонстрация является тривиальной 1 , как и класс стандартной компоновки, поэтому это POD. Верна ли моя интерпретация?
1 Тривиальный класс - это класс, который имеет тривиальный конструктор по умолчанию (12.1) и легко копируется. [9p5, n3126]