2828#define exprtk_disable_superscalar_unroll
2929#define exprtk_disable_rtl_vecops
3030#define exprtk_disable_rtl_io_file
31+
32+ #if defined(MRPT_USE_SYSTEM_EXPRTK)
33+ #include < exprtk.hpp>
34+ #else
3135#include < mrpt/3rdparty/exprtk.hpp>
36+ #endif
3237
3338using namespace mrpt ;
3439using namespace mrpt ::expr;
@@ -48,7 +53,10 @@ struct CRuntimeCompiledExpression::ExprVerbose
4853 ExprVerbose ()
4954 {
5055 const char * sp = ::getenv (" MRPT_EXPR_VERBOSE" );
51- if (nullptr == sp) return ;
56+ if (nullptr == sp)
57+ {
58+ return ;
59+ }
5260 const std::string s = mrpt::system::trim (std::string (sp));
5361
5462 if (s == std::string (" 1" ))
@@ -74,8 +82,6 @@ CRuntimeCompiledExpression::CRuntimeCompiledExpression() :
7482{
7583}
7684
77- CRuntimeCompiledExpression::~CRuntimeCompiledExpression () = default ;
78-
7985void CRuntimeCompiledExpression::compile (
8086 const std::string& expression,
8187 const std::map<std::string, double >& variables,
@@ -95,28 +101,47 @@ void CRuntimeCompiledExpression::compile(
95101
96102 // Convert from std::function<> to raw functors:
97103 for (const auto & kv : m_funcs_0)
98- if (auto ptr = kv.second .target <double (*)()>(); ptr) symbol_table.add_function (kv.first , *ptr);
104+ {
105+ if (auto ptr = kv.second .target <double (*)()>(); ptr)
106+ {
107+ symbol_table.add_function (kv.first , *ptr);
108+ }
109+ }
99110
100111 for (const auto & kv : m_funcs_1)
112+ {
101113 if (auto ptr = kv.second .target <double (*)(double )>(); ptr)
114+ {
102115 symbol_table.add_function (kv.first , *ptr);
116+ }
117+ }
103118
104119 for (const auto & kv : m_funcs_2)
120+ {
105121 if (auto ptr = kv.second .target <double (*)(double , double )>(); ptr)
122+ {
106123 symbol_table.add_function (kv.first , *ptr);
124+ }
125+ }
107126
108127 for (const auto & kv : m_funcs_3)
128+ {
109129 if (auto ptr = kv.second .target <double (*)(double , double , double )>(); ptr)
130+ {
110131 symbol_table.add_function (kv.first , *ptr);
132+ }
133+ }
111134
112135 m_impl->m_compiled_formula .register_symbol_table (symbol_table);
113136
114137 // Compile user-given expressions:
115138 exprtk::parser<double > parser;
116139 if (!parser.compile (expression, m_impl->m_compiled_formula ))
140+ {
117141 THROW_EXCEPTION_FMT (
118142 " Error compiling expression (name=`%s`): `%s`. Error: `%s`" ,
119143 expr_name_for_error_reporting.c_str (), expression.c_str (), parser.error ().c_str ());
144+ }
120145
121146 m_impl->m_compiled = true ;
122147}
@@ -168,7 +193,10 @@ const std::string& CRuntimeCompiledExpression::get_original_expression() const
168193void CRuntimeCompiledExpression::ExprVerbose::process (
169194 const CRuntimeCompiledExpression& rce, const double ret)
170195{
171- if (!m_verbose_always_enabled && m_verbose_matches.empty ()) return ;
196+ if (!m_verbose_always_enabled && m_verbose_matches.empty ())
197+ {
198+ return ;
199+ }
172200
173201 const auto & exp = *rce.m_impl .get ();
174202
@@ -183,7 +211,10 @@ void CRuntimeCompiledExpression::ExprVerbose::process(
183211 break ;
184212 }
185213 }
186- if (!matched) return ;
214+ if (!matched)
215+ {
216+ return ;
217+ }
187218 }
188219
189220 std::vector<std::pair<std::string, double >> lst;
@@ -195,5 +226,8 @@ void CRuntimeCompiledExpression::ExprVerbose::process(
195226 " * Final value: " << ret << " \n "
196227 " * Using these symbols:\n " ;
197228 // clang-format on
198- for (const auto & v : lst) std::cout << " * " << v.first << " = " << v.second << " \n " ;
229+ for (const auto & v : lst)
230+ {
231+ std::cout << " * " << v.first << " = " << v.second << " \n " ;
232+ }
199233}
0 commit comments