mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 18:49:03 -04:00
optimise string comparison.. this time I've done it right.. sheesh shitty C++ name lookup :-(
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9900 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
8a51d8969c
commit
63ee682557
@ -14,6 +14,7 @@
|
||||
#ifndef _HASHCOMP_H_
|
||||
#define _HASHCOMP_H_
|
||||
|
||||
#include <cstring>
|
||||
//#include "inspircd_config.h"
|
||||
//#include "socket.h"
|
||||
#include "hash_map.h"
|
||||
@ -620,6 +621,30 @@ inline bool operator!= (const std::string& leftval, const irc::string& rightval)
|
||||
return !(leftval.c_str() == rightval);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
template<std::size_t N>
|
||||
static inline bool operator == (irc::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 != (irc::string const &lhs, char const (&rhs)[N])
|
||||
{
|
||||
return !(lhs == rhs);
|
||||
}
|
||||
|
||||
/** Assign an irc::string to a std::string.
|
||||
*/
|
||||
inline std::string assign(const irc::string &other) { return other.c_str(); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user