Здравствуйте, Dair, Вы писали:
D>Или это яркий пример так называемого говнокода, как мне и показалось с первого взгляда?
Без контекста непонятно, до какой степени это говнокод.
Но говнокод в любом случае, т.к. это эксплуатация неопределённого поведения.
Перечень бомб, которые здесь заложены:
— оптимизатор может бодро повыкидывать куски рабочего кода
— AV, если вдруг потребуется разыменовать указатель, — например, какая-то функция из невиртуальной будет переделана в виртуальную, или если оптимизатор заменит статический вызов виртуальной функции на динамический
— ненулевой адрес базы/наследника при сдвиге базы (при работе с указателями создаётся специальный код, превращающий нуль в нуль; при работе со ссылками этих проверок нет)
— последующее AV при работе с ненулевыми же адресами!
— в параноидном режиме программа просто не скомпилируется