From 37f5e0aacbf629e288ee8644736610ed850b23cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Sun, 22 Mar 2026 23:35:08 +0100 Subject: [PATCH] Simplify code to make them more readable and concise. --- .../container/experimental/segmented_find_if.hpp | 8 +++----- .../experimental/segmented_generate_n.hpp | 16 +++++++--------- .../experimental/segmented_is_sorted.hpp | 4 ++-- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/include/boost/container/experimental/segmented_find_if.hpp b/include/boost/container/experimental/segmented_find_if.hpp index 7910fad..2ff7d55 100644 --- a/include/boost/container/experimental/segmented_find_if.hpp +++ b/include/boost/container/experimental/segmented_find_if.hpp @@ -47,8 +47,8 @@ SegIter segmented_find_if_dispatch (SegIter first, SegIter last, Pred pred, segmented_iterator_tag) { typedef segmented_iterator_traits traits; - typedef typename traits::local_iterator local_iterator; - typedef typename traits::segment_iterator segment_iterator; + typedef typename traits::local_iterator local_iterator; + typedef typename traits::segment_iterator segment_iterator; typedef typename segmented_iterator_traits::is_segmented_iterator is_local_seg_t; segment_iterator sfirst = traits::segment(first); @@ -73,9 +73,7 @@ SegIter segmented_find_if_dispatch return traits::compose(sfirst, r); } //Last segment - { - return traits::compose(sfirst, (segmented_find_if_dispatch)(traits::begin(sfirst), traits::local(last), pred, is_local_seg_t())); - } + return traits::compose(slast, (segmented_find_if_dispatch)(traits::begin(slast), traits::local(last), pred, is_local_seg_t())); } } diff --git a/include/boost/container/experimental/segmented_generate_n.hpp b/include/boost/container/experimental/segmented_generate_n.hpp index 09b1cf0..7ca4afe 100644 --- a/include/boost/container/experimental/segmented_generate_n.hpp +++ b/include/boost/container/experimental/segmented_generate_n.hpp @@ -59,7 +59,8 @@ OutIter generate_n_scan_non_segmented(OutIter first, OutIter last, Size& count, } template -BOOST_CONTAINER_FORCEINLINE OutIter generate_n_scan(OutIter first, OutIter last, Size& count, Generator &gen, non_segmented_iterator_tag) +BOOST_CONTAINER_FORCEINLINE +OutIter generate_n_scan(OutIter first, OutIter last, Size& count, Generator &gen, non_segmented_iterator_tag) { return (generate_n_scan_non_segmented)(first, last, count, gen, typename iterator_traits::iterator_category()); } @@ -74,19 +75,19 @@ SegIt generate_n_scan(SegIt first, SegIt last, Size& count, Generator& gen, segm segment_iterator scur = traits::segment(first); segment_iterator slast = traits::segment(last); - local_iterator lcur = traits::local(first); if(scur == slast) { - lcur = generate_n_scan(lcur, traits::local(last), count, gen, is_local_seg_t()); + return traits::compose(scur, generate_n_scan(traits::local(first), traits::local(last), count, gen, is_local_seg_t())); } else { - lcur = generate_n_scan(lcur, traits::end(scur), count, gen, is_local_seg_t()); + local_iterator lcur = generate_n_scan(traits::local(first), traits::end(scur), count, gen, is_local_seg_t()); for(++scur; scur != slast && count > 0; ++scur) lcur = generate_n_scan(traits::begin(scur), traits::end(scur), count, gen, is_local_seg_t()); if(count > 0) - lcur = generate_n_scan(traits::begin(scur), traits::local(last), count, gen, is_local_seg_t()); + lcur = generate_n_scan(traits::begin(slast), traits::local(last), count, gen, is_local_seg_t()); + return traits::compose(scur, lcur); } - return traits::compose(scur, lcur); + } template @@ -98,9 +99,6 @@ SegIter segmented_generate_n_ref typedef typename traits::segment_iterator segment_iterator; typedef typename segmented_iterator_traits::is_segmented_iterator is_local_seg_t; - if(count <= 0) - return first; - segment_iterator scur = traits::segment(first); local_iterator lcur = traits::local(first); diff --git a/include/boost/container/experimental/segmented_is_sorted.hpp b/include/boost/container/experimental/segmented_is_sorted.hpp index 2bcf152..7facfef 100644 --- a/include/boost/container/experimental/segmented_is_sorted.hpp +++ b/include/boost/container/experimental/segmented_is_sorted.hpp @@ -30,7 +30,7 @@ template BOOST_CONTAINER_FORCEINLINE bool segmented_is_sorted(FwdIt first, Sent last, Comp comp) { - return boost::container::segmented_is_sorted_until(first, last, comp) == last; + return (segmented_is_sorted_until)(first, last, comp) == last; } //! Returns true if [first, last) is sorted using operator<. @@ -38,7 +38,7 @@ template BOOST_CONTAINER_FORCEINLINE bool segmented_is_sorted(FwdIt first, Sent last) { - return boost::container::segmented_is_sorted_until(first, last) == last; + return (segmented_is_sorted_until)(first, last) == last; } } // namespace container