Ответ в том, что вы этого не хотите.Хотя это выполнимо, особенно генерация C ++ во время выполнения, компиляция его в DLL и последующая загрузка обратно в ваш процесс - это крайне неуклюжий способ сделать это.
Структуры данных вашей программы должны быть известны при компиляциивремя (если оно написано на C ++), так почему вы не можете определить схему для этого только один раз и скомпилировать ее заранее?Позволяет ли ваша программа «проектировать» структуры данных во время выполнения?
Для чрезвычайно динамичных случаев использования, например, когда пользователь может создавать произвольные объекты, я бы порекомендовал FlexBuffers (https://google.github.io/flatbuffers/flexbuffers.html). Они могутиспользоваться внутри FlatBuffer для хранения «неизвестных» данных или даже в качестве их собственного формата сериализации. С их помощью вы можете сериализовать объекты, структура которых известна только во время выполнения, они имеют большинство одинаковых свойств эффективности FlatBuffers, и вы выиграли 'не нужно связывать компилятор C ++ с вашей программой:)
Best - это комбинация двух, где все известные во время компиляции данные хранятся в FlatBuffers, а остальные - в FlexBuffers.