long operator() (const char *str) const { const uint32 m = 4294967291u; uint32 result = 0; for (; *str != '\0'; ++str) result = ((result << 8) + *str) % m; return long(result);
bool operator()(const char* s1, const char* s2) const { return (std::strcmp(s1, s2) < 0);
	long operator() (const char *str) const	{		const uint32 m = 4294967291u;		uint32 result = 0;		for (; *str != '\0'; ++str)			result = ((result << 8) + *str) % m;		return long(result);	}