В настоящее время у меня есть следующее:
Код: Выделить всё
typedef double T; // numeric type (float, double, mpfr etc...)
typedef exprtk::symbol_table symbol_table_t;
typedef exprtk::expression expression_t;
typedef exprtk::parser parser_t;
std::string expression_string = "var z[2] := { x, y };";
T x = T(5.3);
T y = T(2.3);
std::vector z;
symbol_table_t symbol_table;
symbol_table.add_variable("x", x);
symbol_table.add_variable("y", y);
symbol_table.add_vector("z", z);
expression_t expression;
expression.register_symbol_table(symbol_table);
//Check if expression is valid
parser_t parser;
if (!parser.compile(expression_string, expression))
{
printf("Compilation error...\n");
return;
}
T result = expression.value();
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/62025485/get-vector-from-exprtk-as-output[/url]
Мобильная версия