diff --git a/src/core/math/extern/exprtk.h b/src/core/math/extern/exprtk.h
index 187763626ca0b5af12f2c0bbf5c21f4626cacb1f..b819573129bff2babf2beda4bf7925a96f0949d8 100644
--- a/src/core/math/extern/exprtk.h
+++ b/src/core/math/extern/exprtk.h
@@ -161,8 +161,10 @@ namespace exprtk
       #ifndef exprtk_disable_caseinsensitivity
       inline void case_normalise(std::string& s)
       {
-         std::transform
-              (s.begin(), s.end(), s.begin(), static_cast<int(*)(int)>(std::tolower));
+         for (std::size_t i = 0; i < s.size(); ++i)
+         {
+            s[i] = static_cast<std::string::value_type>(std::tolower(s[i]));
+         }
       }
 
       inline bool imatch(const char_t c1, const char_t c2)