From 4dd2a8a7ccf86a28d23e192c1a379a1f638e4be7 Mon Sep 17 00:00:00 2001 From: Arash Partow Date: Mon, 13 Apr 2015 19:38:34 +1000 Subject: [PATCH] C++ Mathematical Expression Library (ExprTk) http://www.partow.net/programming/exprtk/index.html --- exprtk.hpp | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/exprtk.hpp b/exprtk.hpp index ae99b02..a3d14ea 100644 --- a/exprtk.hpp +++ b/exprtk.hpp @@ -9842,27 +9842,24 @@ namespace exprtk range_list_[i].type_size = sizeof(char); range_list_[i].str_node = sbn; - if (is_generally_string_node(arg_list_[i])) + range_interface_t* ri = reinterpret_cast(0); + + if (0 == (ri = dynamic_cast(arg_list_[i]))) + return false; + + range_t& rp = ri->range_ref(); + + if ( + rp.const_range() && + is_const_string_range_node(arg_list_[i]) + ) { - range_interface_t* ri = reinterpret_cast(0); - - if (0 == (ri = dynamic_cast(arg_list_[i]))) - return false; - - range_t& rp = ri->range_ref(); - - if ( - rp.const_range() && - is_const_string_range_node(arg_list_[i]) - ) - { - ts.size = rp.const_size(); - ts.data = static_cast(ts.data) + rp.n0_c.second; - range_list_[i].range = reinterpret_cast(0); - } - else - range_list_[i].range = &(ri->range_ref()); + ts.size = rp.const_size(); + ts.data = static_cast(ts.data) + rp.n0_c.second; + range_list_[i].range = reinterpret_cast(0); } + else + range_list_[i].range = &(ri->range_ref()); } else if (is_variable_node(arg_list_[i])) {