1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
/*******************************************************************************
* librepfunc - a collection of common functions, classes and tools.
* See the README file for copyright information and how to reach the author.
******************************************************************************/
#include <repfunc.h>
#include <algorithm>
typedef int (*UnaryOperation)(int ch);
template<class T>
std::basic_string<T> CaseT(std::basic_string<T> s, UnaryOperation conv) {
std::basic_string<T> r(s);
std::transform(r.begin(), r.end(), r.begin(), conv);
return r;
}
std::string LowerCase(std::string s) {
return CaseT(s, ::tolower);
}
std::string UpperCase(std::string s) {
return CaseT(s, ::toupper);
}
std::wstring LowerCase(std::wstring s) {
return CaseT(s, ::tolower);
}
std::wstring UpperCase(std::wstring s) {
return CaseT(s, ::toupper);
}
|