Обычные старые типы данных с закрытыми членами?

Является ли 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]

5
задан Community 23 May 2017 в 12:18
поделиться