diff --git a/src/util/ue2_containers.h b/src/util/ue2_containers.h index 75e0a0a4..7034dc6f 100644 --- a/src/util/ue2_containers.h +++ b/src/util/ue2_containers.h @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -120,7 +121,8 @@ protected: */ template , class Allocator = std::allocator> -class flat_set : flat_detail::flat_base { +class flat_set : flat_detail::flat_base, + boost::totally_ordered> { using base_type = flat_detail::flat_base; using storage_type = typename base_type::storage_type; @@ -315,26 +317,14 @@ public: return comp(); } - // Operators. + // Operators. All others provided by boost::totally_ordered. bool operator==(const flat_set &a) const { return data() == a.data(); } - bool operator!=(const flat_set &a) const { - return data() != a.data(); - } bool operator<(const flat_set &a) const { return data() < a.data(); } - bool operator<=(const flat_set &a) const { - return data() <= a.data(); - } - bool operator>(const flat_set &a) const { - return data() > a.data(); - } - bool operator>=(const flat_set &a) const { - return data() >= a.data(); - } // Free swap function for ADL. friend void swap(flat_set &a, flat_set &b) { @@ -363,7 +353,8 @@ public: */ template , class Allocator = std::allocator>> -class flat_map : flat_detail::flat_base, Compare, Allocator> { +class flat_map : flat_detail::flat_base, Compare, Allocator>, + boost::totally_ordered> { public: // Member types. using key_type = Key; @@ -626,26 +617,14 @@ public: return value_compare(comp()); } - // Operators. + // Operators. All others provided by boost::totally_ordered. bool operator==(const flat_map &a) const { return data() == a.data(); } - bool operator!=(const flat_map &a) const { - return data() != a.data(); - } bool operator<(const flat_map &a) const { return data() < a.data(); } - bool operator<=(const flat_map &a) const { - return data() <= a.data(); - } - bool operator>(const flat_map &a) const { - return data() > a.data(); - } - bool operator>=(const flat_map &a) const { - return data() >= a.data(); - } // Free swap function for ADL. friend void swap(flat_map &a, flat_map &b) {