summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpippijn <pippijn@e03df62e-2008-0410-955e-edbf42e46eb7>2008-06-12 21:00:48 +0000
committerpippijn <pippijn@e03df62e-2008-0410-955e-edbf42e46eb7>2008-06-12 21:00:48 +0000
commitcf6ba58008b3700388222b3e75f07d5b0bfe8fdc (patch)
tree15adb2c7e9ff12fc1d68c9d5fc1cd9d0419c12e4
parent1519698640ed3fb389b87bb9272f523f40745260 (diff)
optimise string-to-literal comparison while we are at it
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9896 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/inspircd.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/include/inspircd.h b/include/inspircd.h
index e1048f114..6832b805f 100644
--- a/include/inspircd.h
+++ b/include/inspircd.h
@@ -15,8 +15,8 @@
#define __INSPIRCD_H__
#ifndef WIN32
-#define DllExport
-#define CoreExport
+#define DllExport
+#define CoreExport
#define printf_c printf
#else
#include "inspircd_win32wrapper.h"
@@ -148,6 +148,18 @@ template<typename T> inline long ConvToInt(const T &in)
return atoi(tmp.str().c_str());
}
+template<typename CharT, typename TraitsT, std::size_t N>
+static inline bool operator == (std::basic_string<CharT, TraitsT> const &lhs, char const (&rhs)[N])
+{
+ return lhs.length() == N - 1 && !std::memcmp(lhs.data(), rhs, N - 1);
+}
+
+template<typename CharT, typename TraitsT, std::size_t N>
+static inline bool operator != (std::basic_string<CharT, TraitsT> const &lhs, char const (&rhs)[N])
+{
+ return !(lhs == rhs);
+}
+
/** Template function to convert integer to char, storing result in *res and
* also returning the pointer to res. Based on Stuart Lowe's C/C++ Pages.
* @param T input value
@@ -424,7 +436,7 @@ class CoreExport InspIRCd : public classbase
/** LogManager handles logging.
*/
LogManager *Logs;
-
+
/** ModuleManager contains everything related to loading/unloading
* modules.
*/
@@ -603,7 +615,7 @@ class CoreExport InspIRCd : public classbase
*/
void SignalHandler(int signal);
- /** Sets the signal recieved
+ /** Sets the signal recieved
* @param signal the signal recieved
*/
static void SetSignal(int signal);