Самый простой способ - использовать внешнюю библиотеку. Самый простой, который я нашел, это TinyExpr . Он написан на C, поэтому его очень легко вызывать из C ++. Кроме того, это только один исходный файл и один заголовочный файл. Очень легко интегрировать. Вы можете получить это здесь .
Решение вашего примера проблемы просто:
#include "tinyexpr.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Result: %f\n", te_interp("3+sqrt(5)+pow(3,2)+log(5)", 0));
return 0;
}
Я знаю, что встраивание Python в C ++ может сделать это
Вы могли бы сделать это, но вы бы столкнулись с огромной зависимостью, чтобы решить простую проблему.