![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: advanceBoost , ,
|
Front Page / Iterators / Iterator Metafunctions / advance |
Перемещает Итератор на расстояние N. Для итераторов bidirectional и random access расстояние может быть отрицательным.
#include <boost/mpl/advance.hpp>
Parameter | Requirement | Description |
---|---|---|
Итератор | Передний итератор | Итератор для продвижения. |
N | Интегральная постоянная | Расстояние. |
Для Forward Iteratoriter и произвольного Integral Constantn:
typedef advance<iter,n>::type j;
Return type: | |
---|---|
Precondition: | If Iterator is a Forward Iterator, n::value must be nonnegative. |
Semantics: | Equivalent to: typedef iter i0; typedef next<i0>::type i1; ... typedef next<in-1>::type j; если n:: значение > 0 и typedef iter i0; typedef prior<i0>::type i1; ... typedef prior<in-1>::type j; иначе. |
Postcondition: | j is dereferenceable or past-the-end; distance<iter,j>::value == n::value if n::value > 0, and distance<j,iter>::value == n::value otherwise. |
Амортизированное постоянное время, если iter является моделью Random Access Iterator, иначе линейное время.
typedef range_c<int,0,10> numbers; typedef begin<numbers>::type first; typedef end<numbers>::type last; typedef advance<first,int_<10> >::type i1; typedef advance<last,int_<-10> >::type i2; BOOST_MPL_ASSERT(( boost::is_same<i1,last> )); BOOST_MPL_ASSERT(( boost::is_same<i2,first> ));
) |
Статья The MPL Reference Manual: advance раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |