int alphanum_comp<std::string>(const std::string& l, const std::string& r) { #ifdef DOJDEBUG std::clog << "alphanum_comp<std::string,std::string> " << l << "," << r << std::endl; #endif return alphanum_impl(l.c_str(), r.c_str()); }
int alphanum_comp(const char* l, const std::string& r) { assert(l); #ifdef DOJDEBUG std::clog << "alphanum_comp<const char*,std::string> " << l << "," << r << std::endl; #endif return alphanum_impl(l, r.c_str()); }
int alphanum_comp(const std::string& l, const char* r) { assert(r); #ifdef DOJDEBUG std::clog << "alphanum_comp<std::string,const char*> " << l << "," << r << std::endl; #endif return alphanum_impl(l.c_str(), r); }
int alphanum_comp(const char* l, char* r) { assert(l); assert(r); #ifdef DOJDEBUG std::clog << "alphanum_comp<const char*,char*> " << l << "," << r << std::endl; #endif return alphanum_impl(l, r); }
int alphanum_comp(const lT& left, const rT& right) { #ifdef DOJDEBUG std::clog << "alphanum_comp<" << typeid(left).name() << "," << typeid(right).name() << "> " << left << "," << right << std::endl; #endif std::ostringstream l; l << left; std::ostringstream r; r << right; return alphanum_impl(l.str().c_str(), r.str().c_str()); }
int alphanum_comp(const char* l, const std::string& r) { assert(l); return alphanum_impl(l, r.c_str()); }
int alphanum_comp(const std::string& l, const char* r) { assert(r); return alphanum_impl(l.c_str(), r); }
int alphanum_comp(const char* l, char* r) { assert(l); assert(r); return alphanum_impl(l, r); }
int alphanum_comp<std::string>(const std::string& l, const std::string& r) { return alphanum_impl(l.c_str(), r.c_str()); }
int alphanum_comp(const lT& left, const rT& right) { std::ostringstream l; l << left; std::ostringstream r; r << right; return alphanum_impl(l.str().c_str(), r.str().c_str()); }