From b3e3b1f14e12b4b0a395ef8e2a4848f132e2c22b Mon Sep 17 00:00:00 2001 From: brain Date: Thu, 12 Jun 2008 19:29:42 +0000 Subject: Now builds ok on gcc 4.3, not tested fully. Also UGLY, oh we hate you GCC, why couldnt you just use TR1 from the start??? git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9894 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/hashcomp.h | 12 ++++++++---- include/inspircd.h | 2 ++ include/typedefs.h | 23 +++++++++++------------ 3 files changed, 21 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/hashcomp.h b/include/hashcomp.h index e93875e3e..777c4fe0e 100644 --- a/include/hashcomp.h +++ b/include/hashcomp.h @@ -688,6 +688,7 @@ BEGIN_HASHMAP_NAMESPACE size_t operator()(const std::string & s) const; }; #else + template<> struct hash { /** Hash an irc::string using RFC1459 case sensitivity rules @@ -697,14 +698,17 @@ BEGIN_HASHMAP_NAMESPACE size_t operator()(const irc::string &s) const; }; + /* XXX FIXME: Implement a hash function overriding std::string's that works with TR1! */ + +#ifdef HASHMAP_DEPRECATED + struct insensitive +#else template<> struct hash +#endif { - /** Hash a std::string using RFC1459 case sensitivity rules - * @param s A string to hash - * @return The hash value - */ size_t operator()(const std::string &s) const; }; + #endif /** Convert a string to lower case respecting RFC1459 diff --git a/include/inspircd.h b/include/inspircd.h index 9d7c8e6e1..e1048f114 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -34,6 +34,8 @@ // Required system headers. #include #include +#include +#include #include "inspircd_config.h" #include "uid.h" diff --git a/include/typedefs.h b/include/typedefs.h index d80e578de..5caebf0f1 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -15,19 +15,18 @@ #define __TYPEDEF_H__ #ifndef WIN32 -/** User hash (POSIX systems with GCC) - */ -typedef nspace::hash_map, irc::StrHashComp> user_hash; -/** Channel hash (POSIX systems with GCC) - */ -typedef nspace::hash_map, irc::StrHashComp> chan_hash; + + #ifdef HASHMAP_DEPRECATED + typedef nspace::hash_map user_hash; + typedef nspace::hash_map chan_hash; + #else + typedef nspace::hash_map, irc::StrHashComp> user_hash; + typedef nspace::hash_map, irc::StrHashComp> chan_hash; + #endif #else -/** User hash (windows systems with visual studio) - */ -typedef nspace::hash_map > > user_hash; -/** Channel hash (windows systems with visual studio) - */ -typedef nspace::hash_map > > chan_hash; + + typedef nspace::hash_map > > user_hash; + typedef nspace::hash_map > > chan_hash; #endif /** Server name cache -- cgit v1.2.3