+/* Define operators != for irc::string to std::string for easy comparison
+ */
+inline bool operator!= (const irc::string& leftval, const std::string& rightval)
+{
+ return !(leftval == rightval.c_str());
+}
+
+/* Define operators != for std::string to irc::string for easy comparison
+ */
+inline bool operator!= (const std::string& leftval, const irc::string& rightval)
+{
+ 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
+