]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/flat_map.h
Switch User::usertype back to an unsigned int.
[user/henk/code/inspircd.git] / include / flat_map.h
index bef1404e43373ed991c684ae4b3421dde5069afd..5d888fa9bf6f09661942e3ab53c2333848ed5853 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2019 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
@@ -200,10 +201,10 @@ class flat_map_base
 
 } // namespace detail
 
-template <typename T, typename Comp = std::less<T> >
-class flat_set : public detail::flat_map_base<T, Comp>
+template <typename T, typename Comp = std::less<T>, typename ElementComp = Comp>
+class flat_set : public detail::flat_map_base<T, Comp, T, ElementComp>
 {
-       typedef detail::flat_map_base<T, Comp> base_t;
+       typedef detail::flat_map_base<T, Comp, T, ElementComp> base_t;
 
  public:
        typedef typename base_t::iterator iterator;
@@ -240,10 +241,10 @@ class flat_set : public detail::flat_map_base<T, Comp>
        }
 };
 
-template <typename T, typename Comp = std::less<T> >
-class flat_multiset : public detail::flat_map_base<T, Comp>
+template <typename T, typename Comp = std::less<T>, typename ElementComp = Comp>
+class flat_multiset : public detail::flat_map_base<T, Comp, T, ElementComp>
 {
-       typedef detail::flat_map_base<T, Comp> base_t;
+       typedef detail::flat_map_base<T, Comp, T, ElementComp> base_t;
 
  public:
        typedef typename base_t::iterator iterator;
@@ -280,10 +281,10 @@ class flat_multiset : public detail::flat_map_base<T, Comp>
        }
 };
 
-template <typename T, typename U, typename Comp = std::less<T> >
-class flat_map : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, Comp> >
+template <typename T, typename U, typename Comp = std::less<T>, typename ElementComp = Comp >
+class flat_map : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, ElementComp> >
 {
-       typedef detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, Comp> > base_t;
+       typedef detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, ElementComp> > base_t;
 
  public:
        typedef typename base_t::iterator iterator;
@@ -333,10 +334,10 @@ class flat_map : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::
        }
 };
 
-template <typename T, typename U, typename Comp = std::less<T> >
-class flat_multimap : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, Comp> >
+template <typename T, typename U, typename Comp = std::less<T>, typename ElementComp = Comp >
+class flat_multimap : public detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, ElementComp> >
 {
-       typedef detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, Comp> > base_t;
+       typedef detail::flat_map_base<std::pair<T, U>, Comp, T, detail::map_pair_compare<std::pair<T, U>, ElementComp> > base_t;
 
  public:
        typedef typename base_t::iterator iterator;