Muss ich jedes Mal, wenn ich den Parser.comPile () < /strong>
oder alle Variablennamen ausführe, angeben Kann ich die Werte nachsehen lassen und dann bei Expression (value () Zeit bewertet? Sollte ich eine Suchfunktion erstellen und den variablen Namen als Zeichenfolge übergeben? dh "Lookup (" Outside_Temp ")> 60"? Ich bin mir nicht sicher, ob das mir etwas kauft, denn eine unklare, ob ich den Exprtk -Kontext für später serialisieren kann? Aber ich müsste lieber nicht jedes Mal alle Variablen angeben.
Kann ich den Kontext speichern? < /p>
Code: Select all
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