Нет.
Если список поддерживаемых вами типов можно перечислить конечным и централизованным образом, можно использовать std::variant
или boost::variant
или список по вашему усмотрению.
Есливаш список операций над типом, который вы поддерживаете, может быть конечно и централизованно перечислен, std::any
или boost::any
вместе с методами стирания типа могут быть использованы для решения вашей проблемы. Вот чрезмерно общая система для стирания почти любой операции одной отправки .
Вы можете использовать std::any
или boots::any
, чтобы иметь нецентрально, но локально конечно перечислимый списоктипы, но только точные типы, известные в каждом месте перечисления, находятся в игре в этом месте.
Вы можете сделать комбинацию из вышеперечисленного.
В противном случае вы попадаете в мир времени выполнениякомпиляция динамических библиотек C ++ и передача результата и / или создание C ++ с исходным кодом.Выполнение компиляции на лету.
Все это будет зависеть от того, какова ваша точная, реальная проблема, для которой вы придумали это как «решение»;вероятно, это будет связанный вопрос, на который ваш ответ «да», и этот связанный вопрос, вероятно, вам действительно нужно решить.
Но ответ на поставленный вопрос просто «Нет»..