Rolf said:
One example is the german character ß that doesn't have a single uppercase
equivalent. 'Fuß' would need to compare equal to 'FUSS'.
This is not the case here, since we are talking about std::string.
About multilingual characters, one should use wchar_t, std::wstring and
the std::towlower(), std::towupper() of <cwctype>, all guaranteed to work.
C++98:
"Type wchar_t is a distinct type whose values can represent distinct
codes for all members of the largest extended character set specified
among the supported locales (22.1.1). Type wchar_t shall have the same
size, signedness, and alignment requirements (3.9) as one of the other
integral types, called its underlying type."