Каким правилам я должен следовать, чтобы гарантировать, что тип C++ является POD? [дубликат]C++

Программы на C++. Форум разработчиков
Anonymous
Каким правилам я должен следовать, чтобы гарантировать, что тип C++ является POD? [дубликат]

Сообщение Anonymous »


Возможный дубликат:

Что такое типы POD в C++?
Что такое агрегаты и POD и почему/почему они особенные?


Я пишу интерпретатор на C++ и хочу убедиться, что определенные данные C++ типы имеют предсказуемую структуру, когда к ним обращаются через интерпретируемый код, особенно при использовании отражения. Например, я хочу убедиться, что первое поле данных всегда имеет нулевое смещение от адреса объекта. Это тривиально для чисто типов POD. Однако мне интересно, может ли это также работать с объектами, имеющими наследование или конструкторы, если я избегаю очевидных вещей, таких как виртуальные функции или множественное наследование. Разумно ли предполагать, что компилятор будет размещать эти типы так же, как компилятор C, или мне придется беспокоиться о «неопределенном поведении» в стандарте C++?

Подробнее здесь: https://stackoverflow.com/questions/132 ... ype-is-pod

Вернуться в «C++»