Это зависит от того, почему вы хотите это сделать.
Если это по соображениям эффективности - вы знаете, что функция делает только во время выполнения, но она должна быть очень эффективной - то, что уже было предложено (запись в файл, компиляция в dll/so и динамическая загрузка его) - ваш лучший вариант.
НО, если причина, по которой вы хотите, это разрешить поведение пользователя, скажем, общую функцию, которую вы читаете из базы данных (поведение или единичное значение в поле в сюжете?) - или, в общем, вы просто хочу изменить/увеличить поведение во время выполнения, не заботясь об эффективности, я рекомендую использовать внешний язык сценариев, такой как lua
, который легко взаимодействует с вашим скомпилированным кодом на C++.
Вы можете вызвать компилятор из своей программы, скомпилировать файл, который вы можете создать в своей программе, и запустить результат из вашей программы. –
Есть ли новый код * have * для C++? Язык не может этого сделать, но вы можете смонтировать что-то там, где вы пишете код в файл и вызывать компилятор. Я бы не рекомендовал его. Если это не должно быть C++, я слышал хорошие вещи о вложении [Lua] (http://www.lua.org/). – BoBTFish
Я думаю, пришло из фона Python! –