44 template <
typename Traits>
53 for(;n-- > 0;++s1, ++s2)
57 else if (
lt(*s1, *s2))
89 typedef std::basic_string<char, ci_char_traits<std::char_traits<char> > >
ci_string;
90 typedef std::basic_string<char16_t, ci_char_traits<std::char_traits<char16_t> > >
ci_u16string;
103 return std::string(s.begin(), s.end());
107 return std::u16string(s.begin(), s.end());
110 inline bool operator==(
const ci_string& s1,
const std::string& s2)
112 return s1 ==
ci_string(s2.begin(), s2.end());
114 inline bool operator==(
const std::string& s1,
const ci_string& s2)
116 return ci_string(s1.begin(), s1.end()) == s2;
118 inline bool operator!=(
const ci_string& s1,
const std::string& s2)
120 return s1 !=
ci_string(s2.begin(), s2.end());
122 inline bool operator!=(
const std::string& s1,
const ci_string& s2)
124 return ci_string(s1.begin(), s1.end()) != s2;
126 inline bool operator<(
const ci_string& s1,
const std::string& s2)
128 return s1 <
ci_string(s2.begin(), s2.end());
130 inline bool operator<(
const std::string& s1,
const ci_string& s2)
132 return ci_string(s1.begin(), s1.end()) < s2;
135 template <
typename CharT,
typename Traits,
typename Alloc>
137 const std::basic_string<CharT, Traits, Alloc>& s2)
139 typedef std::basic_string<CharT, Traits, Alloc> string_type;
140 typedef typename string_type::size_type size_type;
141 size_type count = std::min(s1.size(), s2.size());
143 return static_cast<int>(answer) < 0 || (answer == 0 && s1.size() < s2.size());
std::basic_string< char16_t, ci_char_traits< std::char_traits< char16_t > > > ci_u16string
ci_string make_ci_string(const std::string &s)
std::basic_string< char, ci_char_traits< std::char_traits< char > > > ci_string
bool lexicographical_compare_ignoring_case(const std::basic_string< CharT, Traits, Alloc > &s1, const std::basic_string< CharT, Traits, Alloc > &s2)
std::basic_string< CharT, Traits, Alloc > to_lower(const std::basic_string< CharT, Traits, Alloc > &aString)
std::string make_string(const ci_string &s)
Traits::char_type char_type
static const char_type * find(const char_type *str, std::size_t n, const char_type &c)
Traits::int_type int_type
static int compare(const char_type *s1, const char_type *s2, std::size_t n)
static int_type lower(char_type c)
static bool eq(const char_type &c1, const char_type &c2)
static bool lt(const char_type &c1, const char_type &c2)