| 9 | char ToLower(char ch) { return IsUpper(ch) ? ch + 'a' - 'A' : ch; } |
| 10 | |
| 11 | std::string tolower(const std::string& str) { |
| 12 | std::string s(str); |
| 13 | std::transform(s.begin(), s.end(), s.begin(), ToLower); |
| 14 | return s; |
| 15 | } |
| 16 | |
| 17 | template <typename T> |
| 18 | bool IsEntirely(const std::string& str, T func) { |