diff options
| author | gingerBill <bill@gingerbill.org> | 2023-01-03 12:18:35 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-01-03 12:18:35 +0000 |
| commit | 747a11a954824da7960a247299986f56d1316773 (patch) | |
| tree | d3ac481d2293ad641adcb9bc0fbe549829a0b43f /src/ptr_set.cpp | |
| parent | 252be0fb417f9cdde5e9c4b348cd995a20433aea (diff) | |
Allow all set entry types to be implicitly cast to their key/value type to allow for easier iteration
Diffstat (limited to 'src/ptr_set.cpp')
| -rw-r--r-- | src/ptr_set.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/ptr_set.cpp b/src/ptr_set.cpp index affde5c2f..303bde07e 100644 --- a/src/ptr_set.cpp +++ b/src/ptr_set.cpp @@ -2,6 +2,10 @@ template <typename T> struct PtrSetEntry { T ptr; MapIndex next; + + operator T() const noexcept { + return this->ptr; + } }; template <typename T> @@ -245,21 +249,21 @@ gb_internal gb_inline void ptr_set_clear(PtrSet<T> *s) { template <typename T> -gb_internal PtrSetEntry<T> *begin(PtrSet<T> &m) { +gb_internal PtrSetEntry<T> *begin(PtrSet<T> &m) noexcept { return m.entries.data; } template <typename T> -gb_internal PtrSetEntry<T> const *begin(PtrSet<T> const &m) { +gb_internal PtrSetEntry<T> const *begin(PtrSet<T> const &m) noexcept { return m.entries.data; } template <typename T> -gb_internal PtrSetEntry<T> *end(PtrSet<T> &m) { +gb_internal PtrSetEntry<T> *end(PtrSet<T> &m) noexcept { return m.entries.data + m.entries.count; } template <typename T> -gb_internal PtrSetEntry<T> const *end(PtrSet<T> const &m) { +gb_internal PtrSetEntry<T> const *end(PtrSet<T> const &m) noexcept { return m.entries.data + m.entries.count; }
\ No newline at end of file |