| 50 | return input.substr(begin); |
| 51 | } |
| 52 | static std::string rtrim(const std::string& input) { |
| 53 | auto s = input; |
| 54 | s.erase(find_if(s.rbegin(), s.rend(), [](unsigned char ch) { return !isspace(ch); }).base(), |
| 55 | s.end()); |
| 56 | return s; |
| 57 | } |
| 58 | static std::string_view rtrim(std::string_view input) { |
| 59 | auto end = input.size(); |
| 60 | while (end > 0 && isSpace(input[end - 1])) { |