// // Snap: Implementation of case-insensitive string comparison classes // #include "stringicmp.h" #include bool TStringiLess::operator() (std::string const& s1, std::string const& s2) const { // An MSVC compliance issue... //using std::toupper; const char *p1 = s1.c_str(); const char *p2 = s2.c_str(); while (*p1 && *p2 && toupper(*p1) == toupper(*p2)) { ++p1; ++p2; } if (!*p1) return *p2 != 0; if (!*p2) return false; return toupper(*p1) < toupper(*p2); }