diff --git a/src/common/utils/string.hpp b/src/common/utils/string.hpp index de59dfdd..53e416fd 100644 --- a/src/common/utils/string.hpp +++ b/src/common/utils/string.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -43,21 +44,18 @@ namespace utils::string return static_cast(std::tolower(static_cast(val))); } - inline char16_t char_to_lower(const char16_t val) - { - if (val >= u'A' && val <= u'Z') - { - return val + 32; - } - - return val; - } - inline wchar_t char_to_lower(const wchar_t val) { return static_cast(std::towlower(val)); } + inline char16_t char_to_lower(const char16_t val) + { + static_assert(sizeof(char16_t) <= sizeof(wchar_t)); + static_assert(sizeof(char16_t) == sizeof(uint16_t)); + return static_cast(char_to_lower(static_cast(static_cast(val)))); + } + template void to_lower_inplace(std::basic_string& str) {