Add make_iterator_advance make_iterator_uadvance

This commit is contained in:
Ion Gaztañaga
2022-08-21 02:21:04 +02:00
parent 7a0707794f
commit bf072b5f24

View File

@@ -213,6 +213,14 @@ BOOST_INTRUSIVE_FORCEINLINE typename iterator_enable_if_tag<InputIt, std::random
it += n; it += n;
} }
template<class InputIt, class Distance>
BOOST_INTRUSIVE_FORCEINLINE typename iterator_enable_if_tag<InputIt, std::random_access_iterator_tag, InputIt>::type
make_iterator_advance(InputIt it, Distance n)
{
(iterator_advance)(it, n);
return it;
}
template<class It> template<class It>
BOOST_INTRUSIVE_FORCEINLINE BOOST_INTRUSIVE_FORCEINLINE
void iterator_uadvance(It& it, typename iter_size<It>::type n) void iterator_uadvance(It& it, typename iter_size<It>::type n)
@@ -220,6 +228,14 @@ BOOST_INTRUSIVE_FORCEINLINE
(iterator_advance)(it, (typename iterator_traits<It>::difference_type)n); (iterator_advance)(it, (typename iterator_traits<It>::difference_type)n);
} }
template<class It>
BOOST_INTRUSIVE_FORCEINLINE
It make_iterator_uadvance(It it, typename iter_size<It>::type n)
{
(iterator_uadvance)(it, n);
return it;
}
//////////////////////////////////////// ////////////////////////////////////////
// iterator_distance // iterator_distance
//////////////////////////////////////// ////////////////////////////////////////