Пишу некоторый сериализатор/десериализатор. По сети приходит структура, которая может содержать один из нескольких типов данных. Тип данных внутри зависит от некого идентификатора внутри структуры, на основе этого id и вывожу тип. Делаю из нею нормальную структуру, работаю с ней, отправляю измененную обратно. Возможные типы данных внутри структуры известны в compile time, А вот пара идентификатор - тип значения внутри могут меняться в runtime.
Получилась такая штука
https://pastebin.com/GjAwZyPe покидайте какашками