Да, именно этот случай. Полный ад случится, если при незначительном изменении структуры сообщения, компилятор по внутренним соображениям выравнивания переставит наследуемые классы (емнип, порядок расположения в стандарте не определён). И внезапно где-то в коде всё сломается!
Да, спасибо. Я не совсем верно употребил по смыслу slice. Я отбрасываю из решения частные случаи slice. Там где указатель на класс наследника и указатель на базовый класс начинают отличаться. В вашем примере с этим всё хорошо (https://ideone.com/9vzMCE).
По смыслу восстановить объект с dynamic_cast можно. И это вариант более полного решения, нежели приведённое. Я скорее хотел обойтись без dynamic_cast, используя фактически reinterpret_cast для ссылок. И поэтому в таком решении приходится отсеивать такие случаи.
По смыслу восстановить объект с dynamic_cast можно. И это вариант более полного решения, нежели приведённое. Я скорее хотел обойтись без dynamic_cast, используя фактически reinterpret_cast для ссылок. И поэтому в таком решении приходится отсеивать такие случаи.