From 5bed25c4dae306df8a319bf1d5a0ac64aa36a4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Thu, 12 Mar 2026 15:40:02 +0100 Subject: [PATCH] Put nest iterators outside "nest_detail" --- include/boost/container/experimental/nest.hpp | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/include/boost/container/experimental/nest.hpp b/include/boost/container/experimental/nest.hpp index 6a8c773..4021365 100644 --- a/include/boost/container/experimental/nest.hpp +++ b/include/boost/container/experimental/nest.hpp @@ -530,6 +530,8 @@ BOOST_CONTAINER_FORCEINLINE void swap_payload(block& x, blo boost::adl_move_swap(x.data_, y.data_); } +} // namespace nest_detail + ////////////////////////////////////////////// // // nest_iterator @@ -655,11 +657,11 @@ private: template friend class boost::container::nest; template friend struct ::boost::container::segmented_iterator_traits; - typedef typename pointer_rebind::type void_pointer; + typedef typename nest_detail::pointer_rebind::type void_pointer; typedef nest_detail::block_base block_base_type; - typedef typename pointer_rebind::type block_base_pointer; - typedef typename pointer_rebind::type const_block_base_pointer; - typedef typename pointer_rebind::type nonconst_pointer; + typedef typename nest_detail::pointer_rebind::type block_base_pointer; + typedef typename nest_detail::pointer_rebind::type const_block_base_pointer; + typedef typename nest_detail::pointer_rebind::type nonconst_pointer; typedef nest_detail::block block_type; typedef typename block_base_type::mask_type mask_type; @@ -696,12 +698,12 @@ class nest_local_iterator { typedef typename boost::intrusive::pointer_traits::element_type element_type; - typedef typename pointer_rebind::type void_pointer; - typedef block_base block_base_type; - typedef typename pointer_rebind::type block_base_pointer; - typedef typename pointer_rebind::type void_pointer; + typedef nest_detail::block_base block_base_type; + typedef typename nest_detail::pointer_rebind::type block_base_pointer; + typedef typename nest_detail::pointer_rebind::type>::type nonconst_pointer; - typedef block block_type; + typedef nest_detail::block block_type; typedef typename block_base_type::mask_type mask_type; BOOST_STATIC_CONSTEXPR std::size_t N = block_base_type::N; @@ -731,7 +733,7 @@ public: BOOST_CONTAINER_FORCEINLINE nest_local_iterator& operator++() BOOST_NOEXCEPT { mask_type m = pbb->mask & (full << 1 << std::size_t(n)); - n = m ? unchecked_countr_zero(m) : int(N); + n = m ? nest_detail::unchecked_countr_zero(m) : int(N); return *this; } @@ -743,7 +745,7 @@ public: mask_type m = (n == int(N)) ? pbb->mask : (pbb->mask & (full >> 1 >> (N - 1 - std::size_t(n)))); - n = int(N - 1 - (std::size_t)unchecked_countl_zero(m)); + n = int(N - 1 - (std::size_t)nest_detail::unchecked_countl_zero(m)); return *this; } @@ -775,9 +777,9 @@ private: template class nest_segment_iterator { - typedef typename pointer_rebind::type void_pointer; - typedef block_base block_base_type; - typedef typename pointer_rebind::type block_base_pointer; + typedef typename nest_detail::pointer_rebind::type void_pointer; + typedef nest_detail::block_base block_base_type; + typedef typename nest_detail::pointer_rebind::type block_base_pointer; public: typedef void value_type; @@ -820,6 +822,8 @@ private: block_base_pointer pbb; }; +namespace nest_detail { + ////////////////////////////////////////////// // // sort_iterator @@ -1074,12 +1078,12 @@ struct const_conditional_visit_adaptor template struct segmented_iterator_traits< - nest_detail::nest_iterator > + nest_iterator > { typedef segmented_iterator_tag is_segmented_iterator; - typedef nest_detail::nest_iterator nest_iterator_type; - typedef nest_detail::nest_local_iterator local_iterator; - typedef nest_detail::nest_segment_iterator segment_iterator; + typedef nest_iterator nest_iterator_type; + typedef nest_local_iterator local_iterator; + typedef nest_segment_iterator segment_iterator; private: typedef typename nest_detail::pointer_rebind::type void_pointer; @@ -1197,8 +1201,8 @@ class nest typedef const T& const_reference; typedef typename allocator_traits_type::size_type size_type; typedef typename allocator_traits_type::difference_type difference_type; - typedef BOOST_CONTAINER_IMPDEF(nest_detail::nest_iterator) iterator; - typedef BOOST_CONTAINER_IMPDEF(nest_detail::nest_iterator) const_iterator; + typedef BOOST_CONTAINER_IMPDEF(nest_iterator) iterator; + typedef BOOST_CONTAINER_IMPDEF(nest_iterator) const_iterator; typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator) reverse_iterator; typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator) const_reverse_iterator;