diff --git a/phreeqcpp/common/Parser.h b/phreeqcpp/common/Parser.h index 3bf093a1..1f329b4d 100644 --- a/phreeqcpp/common/Parser.h +++ b/phreeqcpp/common/Parser.h @@ -280,13 +280,21 @@ class CParser: public PHRQ_base // Global functions static inline std::string &trim_left(std::string &s) { - s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun(std::isspace)))); +#if (__GNUC__ && (__cplusplus >= 201103L)) || (_MSC_VER >= 1600) + s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int c) {return !std::isspace(c);})); +#else + s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun(std::isspace)))); +#endif return s; } static inline std::string &trim_right(std::string &s) { - s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun(std::isspace))).base(), s.end()); - return s; +#if (__GNUC__ && (__cplusplus >= 201103L)) || (_MSC_VER >= 1600) + s.erase(std::find_if(s.rbegin(), s.rend(), [](int c) {return !std::isspace(c);}).base(), s.end()); +#else + s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun(std::isspace))).base(), s.end()); +#endif + return s; } static inline std::string &trim(std::string &s) {