Как определить смещение байта между базовым классом и производным классом?C++

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

Сообщение Anonymous »

У меня есть CRTP-подобная конструкция: < /p>

Код: Выделить всё

class Derived : public Base
Мне нужно вычислить указатель на объект полученного с указателя на базу объект через Reinterpret_cast . Я не могу использовать dynamic_cast , потому что я не использую здесь виртуальные функции.
Типы приведены Полем Мне нужно смещение байта между двумя типами, поэтому я могу использовать Reinterpret_Cast . Как мне это сделать (без неопределенного поведения)? Можно ли сделать при компилированном времени/сохранить как статическую переменную constexpr (я использую C ++ 20)?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ived-class

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