From f0f65c3efcd2576bc64d31d092cf2da657568bce Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Wed, 18 Mar 2026 00:04:18 +0100 Subject: [PATCH 1/2] util: Fix `BitArray::reverse_iterator`s --- include/nn/util/util_BitArray.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/nn/util/util_BitArray.h b/include/nn/util/util_BitArray.h index edaf1ec..4699509 100644 --- a/include/nn/util/util_BitArray.h +++ b/include/nn/util/util_BitArray.h @@ -37,10 +37,14 @@ class BitArray { }; class iterator { + public: typedef difference_type difference_type; typedef reference reference; typedef pointer pointer; + typedef std::random_access_iterator_tag iterator_category; + typedef value_type value_type; + private: BitArray* m_pParent; difference_type m_Pos; @@ -69,10 +73,14 @@ class BitArray { }; class const_iterator { + public: typedef difference_type difference_type; typedef const_reference reference; typedef const_pointer pointer; + typedef std::random_access_iterator_tag iterator_category; + typedef value_type value_type; + private: const BitArray* m_pParent; difference_type m_Pos; @@ -180,4 +188,4 @@ class BitArray { RawType* m_pBuf; size_type m_Len; }; -} // namespace nn::util \ No newline at end of file +} // namespace nn::util From 981745a96a384349cc6ad4f275046d24c0ae44ed Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Wed, 18 Mar 2026 00:35:17 +0100 Subject: [PATCH 2/2] util: Fix `IntrusiveList`'s iterators --- include/nn/util/util_IntrusiveList.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/nn/util/util_IntrusiveList.h b/include/nn/util/util_IntrusiveList.h index a0d7b42..319f43a 100644 --- a/include/nn/util/util_IntrusiveList.h +++ b/include/nn/util/util_IntrusiveList.h @@ -72,6 +72,7 @@ class IntrusiveListImplementation { typedef difference_type difference_type; typedef value_type* pointer; typedef value_type& reference; + typedef std::bidirectional_iterator_tag iterator_category; const_iterator(pointer p) : m_Node(p) {} @@ -92,8 +93,10 @@ class IntrusiveListImplementation { class iterator { public: typedef value_type value_type; + typedef difference_type difference_type; typedef value_type* pointer; typedef value_type& reference; + typedef std::bidirectional_iterator_tag iterator_category; iterator(pointer p) : m_Node(p) {} @@ -197,12 +200,15 @@ class IntrusiveList { typedef std::reverse_iterator reverse_iterator; typedef std::reverse_iterator const_reverse_iterator; typedef int size_type; + typedef int difference_type; class const_iterator { public: typedef T value_type; + typedef difference_type difference_type; typedef value_type* pointer; typedef value_type& reference; + typedef std::bidirectional_iterator_tag iterator_category; reference operator*() const; pointer operator->() const; @@ -228,8 +234,10 @@ class IntrusiveList { class iterator { public: typedef T value_type; + typedef difference_type difference_type; typedef value_type* pointer; typedef value_type& reference; + typedef std::bidirectional_iterator_tag iterator_category; operator const_iterator() const { return static_cast(m_Iterator);