Я хотел бы использовать 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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