Будет ли элемент данных класса standard_layout иметь фиксированное смещение от адреса объекта?

Если класс is_standard_layout, Достаточно ли этого, чтобы гарантировать, что данный нестатический элемент данных всегда будет иметь одинаковое смещение от адреса объекта (то есть одинаково для разных экземпляров этого класса в рамках всего процесса)?

1

Решение

Это эффективно для объектов любого типа (в рамках программы). Доступ к подобъекту происходит через смещения, которые известны во время компиляции и постоянны в машинном коде. Для типов SL вы можете проверить это через offsetof — который гарантированно работает для типов стандартной компоновки и в основном предполагает равномерное смещение.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]