diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2022-08-05 08:52:54 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2022-08-22 14:25:53 (GMT) |
commit | 02c067dee5b53ca318f3acd245795172a0280f1f (patch) | |
tree | ec5d2af388fe5fa026ae2576c7f96fe843b26674 /Utilities/std | |
parent | 7037cfc0f48739bd1eb3498827ebf501671302c7 (diff) | |
download | CMake-02c067dee5b53ca318f3acd245795172a0280f1f.zip CMake-02c067dee5b53ca318f3acd245795172a0280f1f.tar.gz CMake-02c067dee5b53ca318f3acd245795172a0280f1f.tar.bz2 |
cm::enum_set: fix various bugs
Diffstat (limited to 'Utilities/std')
-rw-r--r-- | Utilities/std/cmext/enum_set | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Utilities/std/cmext/enum_set b/Utilities/std/cmext/enum_set index 4225b82..d7b8b39 100644 --- a/Utilities/std/cmext/enum_set +++ b/Utilities/std/cmext/enum_set @@ -146,6 +146,7 @@ public: { this->Set.reset(); this->insert(list); + return *this; } // Iterators @@ -298,17 +299,15 @@ public: { if (this->contains(e)) { return iterator(this, static_cast<size_type>(e)); - } else { - return this->end(); } + return this->end(); } const_iterator find(key_type e) const { if (this->contains(e)) { return const_iterator(this, static_cast<size_type>(e)); - } else { - return this->end(); } + return this->end(); } bool contains(key_type e) const @@ -317,6 +316,10 @@ public: } private: + template <typename E> + friend inline bool operator==(const enum_set<E>& lhs, + const enum_set<E>& rhs) noexcept; + template <typename E, typename Predicate> friend inline void erase_if(enum_set<E>& set, Predicate pred); @@ -369,7 +372,7 @@ template <typename Enum> inline bool operator==(const enum_set<Enum>& lhs, const enum_set<Enum>& rhs) noexcept { - return lhs == rhs; + return lhs.Set == rhs.Set; } template <typename Enum> |