Я хотел бы использовать exprtk для поиска динамического внешнего значенияC++

Программы на C++. Форум разработчиков
Anonymous
Я хотел бы использовать exprtk для поиска динамического внешнего значения

Сообщение Anonymous »

Я хотел бы интегрировать exprtk в приложение C ++ (с открытым исходным кодом). (Bool) или значение температуры (двойное), и я хотел бы иметь возможность оценить выражение, используя эти значения. < /P>
Я уже держу свою собственную таблицу переменных символов? Многие из них перечислены в режиме реального времени. && relay_1 == true "< /p>
мне нужно указать все имена переменных каждый раз, когда я запускаю parser.compile () < /strong>
или может Я посмотрел значения, а затем оцениваемые в Expression.value () время? < /P>
Что считается каноническим способом сделать это? Должен ли я создать функцию поиска и передать имя переменной в виде строки? т.е. "Lookup (" Oversy_temp ")> 60"? Я не уверен, что это мне что -нибудь купит, потому что неясно, могу ли я сериализовать контекст exprtk на потом? < /P>
Большое спасибо < /p>
Это работает, Но я бы предпочел не указывать все переменные каждый раз ..
Могу ли я сохранить контекст? < /p>
void test1() {

using T = double;
typedef exprtk::symbol_table symbol_table_t;
typedef exprtk::expression expression_t;
typedef exprtk::parser parser_t;

symbol_table_t immutable_symbol_table( symbol_table_t::symtab_mutability_type::e_immutable);

double outside_temp = -4;

immutable_symbol_table.add_variable("OUTSIDE_TEMP" , outside_temp );

expression_t expression;
expression.register_symbol_table(immutable_symbol_table);

parser_t parser;

if (!parser.compile("OUTSIDE_TEMP > 60.0", expression))
{
cout

Подробнее здесь: https://stackoverflow.com/questions/794 ... rnal-value

Вернуться в «C++»