Use something a little more compatibility friendly

This commit is contained in:
Akkadius 2020-01-01 20:47:58 -06:00
parent e7ad57a37e
commit 69d887b421

View File

@ -45,32 +45,35 @@ const std::string vStringFormat(const char* format, va_list args);
std::string implode(std::string glue, std::vector<std::string> src); std::string implode(std::string glue, std::vector<std::string> src);
/** /**
* @param s * @param str
* @param chars
* @return * @return
*/ */
static inline std::string &ltrim(std::string &s) inline std::string &ltrim(std::string &str, const std::string &chars = "\t\n\v\f\r ")
{ {
s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace)))); str.erase(0, str.find_first_not_of(chars));
return s; return str;
} }
/** /**
* @param s * @param str
* @param chars
* @return * @return
*/ */
static inline std::string &rtrim(std::string &s) inline std::string &rtrim(std::string &str, const std::string &chars = "\t\n\v\f\r ")
{ {
s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end()); str.erase(str.find_last_not_of(chars) + 1);
return s; return str;
} }
/** /**
* @param s * @param str
* @param chars
* @return * @return
*/ */
static inline std::string &trim(std::string &s) inline std::string &trim(std::string &str, const std::string &chars = "\t\n\v\f\r ")
{ {
return ltrim(rtrim(s)); return ltrim(rtrim(str, chars), chars);
} }
template <typename T> template <typename T>