#ifndef _HASHCOMP_H_
#define _HASHCOMP_H_
+#include <cstring>
//#include "inspircd_config.h"
//#include "socket.h"
#include "hash_map.h"
* @return True if tokens still remain, false if there are none left
*/
virtual bool GetToken(std::string &token);
-
+
/** Fetch the entire remaining stream, without tokenizing
* @return The remaining part of the stream
*/
virtual const std::string GetRemaining();
-
+
/** Returns true if the end of the stream has been reached
* @return True if the end of the stream has been reached, otherwise false
*/
return !(leftval.c_str() == rightval);
}
+// FIXME MAXBUF messes up these
+#if 0
+template<std::size_t N>
+static inline bool operator == (std::string const &lhs, char const (&rhs)[N])
+{
+ return lhs.length() == N - 1 && !std::memcmp(lhs.data(), rhs, N - 1);
+}
+
+template<std::size_t N>
+static inline bool operator != (std::string const &lhs, char const (&rhs)[N])
+{
+ return !(lhs == rhs);
+}
+#endif
+
/** Assign an irc::string to a std::string.
*/
inline std::string assign(const irc::string &other) { return other.c_str(); }
if(s1.length() != s2.length()) return true;
return (irc::irc_char_traits::compare(s1.c_str(), s2.c_str(), s1.length()) < 0);
}
-
+
/** Hash an irc::string value for hash_map
*/
size_t operator()(const irc::string & s) const;
if(s1.length() != s2.length()) return true;
return (irc::irc_char_traits::compare(s1.c_str(), s2.c_str(), s1.length()) < 0);
}
-
+
/** Hash a std::string using RFC1459 case sensitivity rules
* @param s A string to hash
* @return The hash value