diff --git a/exprtk.hpp b/exprtk.hpp index 2fc9613..b4ddacc 100644 --- a/exprtk.hpp +++ b/exprtk.hpp @@ -258,8 +258,8 @@ namespace exprtk const std::size_t length = std::min(s1.size(),s2.size()); for (std::size_t i = 0; i < length; ++i) { - const char c1 = std::tolower(s1[i]); - const char c2 = std::tolower(s2[i]); + const char c1 = static_cast<char>(std::tolower(s1[i])); + const char c2 = static_cast<char>(std::tolower(s2[i])); if (c1 > c2) return false; else if (c1 < c2) @@ -4565,7 +4565,9 @@ namespace exprtk inline T value() const { throw break_exception<T>(return_ ? return_->value() : std::numeric_limits<T>::quiet_NaN()); + #ifndef _MSC_VER return std::numeric_limits<T>::quiet_NaN(); + #endif } inline typename expression_node<T>::node_type type() const @@ -4587,7 +4589,9 @@ namespace exprtk inline T value() const { throw continue_exception(); + #ifndef _MSC_VER return std::numeric_limits<T>::quiet_NaN(); + #endif } inline typename expression_node<T>::node_type type() const @@ -5422,6 +5426,8 @@ namespace exprtk private: + vector_assignment_node<T>& operator=(const vector_assignment_node<T>&); + mutable T* vector_base_; std::vector<expression_ptr> initialiser_list_; const std::size_t size_; @@ -12760,6 +12766,8 @@ namespace exprtk private: + scope_element_manager& operator=(const scope_element_manager&); + parser_t& parser_; std::vector<scope_element> element_; scope_element null_element_; @@ -12793,6 +12801,8 @@ namespace exprtk private: + scope_handler& operator=(const scope_handler&); + parser_t& parser_; }; diff --git a/exprtk_simple_example_13.cpp b/exprtk_simple_example_13.cpp index 7bb87e8..59e7c82 100644 --- a/exprtk_simple_example_13.cpp +++ b/exprtk_simple_example_13.cpp @@ -69,7 +69,7 @@ void savitzky_golay_filter() const T pi = T(3.141592653589793238462); - srand(time(0)); + srand(static_cast<unsigned int>(time(0))); // Generate a signal with noise. for (T t = T(-5); t <= T(+5); t += T(10.0 / n))