alexey38 писал(а):использовать технологии в противоречии с идеологией
Всё равно десериализация в неуправляемых языках была, есть и будет костылём, это нормально.
alexey38 писал(а):то создавайте виртуальные функции возвращающие либо тип
Для object'ов есть только TypeOf — по-видимому, бесполезный. И я не уточнил, что десериализовывать могу не только object'ы некой иерархии, а вообще произвольные типы, даже POD (идентифицируя тип чем-нибудь ещё — строкой или тоже указателем с пометкой, что это ни разу не TypeOf) — частный случай с VMT хотелось бы
единожды разрулить в недрах Deserializer.Deserialize, а не гордо светить пустые конструкторы неинтуитивного назначения.
alexey38 писал(а):либо создающие новый объект.
Объект может быть сконструирован "in-place" — непосредственно в данных другого объекта, массиве, etc.