35 namespace core_strings
45 template<
class S,
class T>
48 if constexpr (std::is_same<S, T>::value)
70 static bool eq(
char c1,
char c2)
72 return toupper(c1) == toupper(c2);
82 static bool ne(
char c1,
char c2)
84 return toupper(c1) != toupper(c2);
94 static bool lt(
char c1,
char c2)
96 return toupper(c1) < toupper(c2);
107 static int compare(
const char* s1,
const char* s2,
size_t n)
111 if (toupper(*s1) < toupper(*s2))
113 if (toupper(*s1) > toupper(*s2))
129 static const char*
find(
const char* s,
int n,
char a)
133 if (toupper(*s) == toupper(a))
160 return std::hash<std::string>{}(std::string(s.data()));
std::basic_string< char, CaseInsensitiveCharTraits > CaseInsensitiveString
static int compare(const char *s1, const char *s2, size_t n)
static bool eq(char c1, char c2)
static bool ne(char c1, char c2)
static const char * find(const char *s, int n, char a)
static bool lt(char c1, char c2)
std::size_t operator()(const hal::core_strings::CaseInsensitiveString &s) const