Код: Выделить всё
void add_function(exprtk::symbol_table& symtab) {
using compositor_t = exprtk::function_compositor;
using function_t = typename compositor_t::function;
compositor_t compositor(symtab);
const bool res = compositor.add(
function_t("incrementor")
.var("x")
.expression
( " x + 1; " ));
if (!res) {
printf("comp err!");
}
}
Код: Выделить всё
using symbol_table_t = exprtk::symbol_table;
using expression_t = exprtk::expression;
using parser_t = exprtk::parser;
double x = 123.0;
symbol_table_t symbol_table;
expression_t expression;
parser_t parser;
symbol_table.add_variable("x", x);
add_function(symbol_table);
expression.register_symbol_table(symbol_table);
const std::string program = "incrementor(x)";
if (!parser.compile(program,expression)) {
printf("err: %s\n",parser.error().c_str());
return;
}
Код: Выделить всё
Error: ERR232 - Undefined symbol: 'incrementor'
Подробнее здесь: https://stackoverflow.com/questions/791 ... compositor
Мобильная версия