POD (Plain Old Data) и не-POD типы данных в C++ отличаются по ряду признаков. 12
POD-типы имеют простую и предсказуемую структуру, не содержат определяемых пользователем конструкторов, деструкторов, виртуальных функций и закрытых или защищённых нестатических членов данных. 24 Распределение памяти для типов POD непрерывное, что позволяет выполнять побайтовое копирование и двоичный ввод-вывод. 5
Не-POD-типы могут включать определяемые пользователем конструкторы, деструкторы, виртуальные функции, а также закрытые или защищённые члены данных. 2 У таких типов часто более сложное поведение и макет памяти. 2
Основная причина отличий в том, что для не-POD-типа нельзя сделать практически никаких предположений о том, как устроен объект. 1 Внутри такого объекта в практически произвольном месте могут располагаться служебные области, неподконтрольные программисту. 1