![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: range_cBoost , ,
|
Front Page / Sequences / Classes / range_c |
template< typename T , T Start , T Finish > struct range_c { typedef integral_c<T,Start> start; typedef integral_c<T,Finish> finish; // unspecified // ... };
Range_cСортировкаПоследовательность случайного доступаИнтегральная постояннаяс. Заметьте, что это не так. Расширяемая последовательность, внутренние метафункции построения последовательностей, такие какpush_frontи алгоритмы преобразования, такие какзаменитьнепосредственно не применимы — чтобы иметь возможность использовать их, сначала нужно скопировать содержимое диапазона в более подходящую последовательность.
#include <boost/mpl/range_c.hpp>
В следующей таблицеrявляется примеромдиапазона_c,nявляетсяинтегральной постоянной,Tявляется произвольным интегральным типом, аnиmявляются интегральными постоянными значениями типаT.
Expression | Semantics |
---|---|
<range_c<T,n,m> range_c<T,n,m>::type> |
ОтсортированнаяСлучайная последовательность доступаинтегральных постоянных оберток для полуоткрытого диапазона значенийn,m:integral_c |
начать |
Итератор, указывающий на началоr; см.Последовательность случайного доступа. |
конец |
Итератор, указывающий на конецr; см.Последовательность случайного доступа. |
размер |
Размерr; см.Последовательность случайного доступа. |
пустой |
БулеваИнтегральная постояннаяcтакова, чтоc:: значение==истинно, если и только еслиrпуст; см.Последовательность случайного доступа. |
фронт |
Первый элемент вr; см.Последовательность случайного доступа. |
назад |
Последний элемент вr; см.Последовательность случайного доступа. |
в |
nth элемент от началаr; см.Последовательность случайного доступа. |
typedef range_c<int,0,0> range0; typedef range_c<int,0,1> range1; typedef range_c<int,0,10> range10; BOOST_MPL_ASSERT_RELATION( size<range0>::value, ==, 0 ); BOOST_MPL_ASSERT_RELATION( size<range1>::value, ==, 1 ); BOOST_MPL_ASSERT_RELATION( size<range10>::value, ==, 10 ); BOOST_MPL_ASSERT(( empty<range0> )); BOOST_MPL_ASSERT_NOT(( empty<range1> )); BOOST_MPL_ASSERT_NOT(( empty<range10> )); BOOST_MPL_ASSERT(( is_same< begin<range0>::type, end<range0>::type > )); BOOST_MPL_ASSERT_NOT(( is_same< begin<range1>::type, end<range1>::type > )); BOOST_MPL_ASSERT_NOT(( is_same< begin<range10>::type, end<range10>::type > )); BOOST_MPL_ASSERT_RELATION( front<range1>::type::value, ==, 0 ); BOOST_MPL_ASSERT_RELATION( back<range1>::type::value, ==, 0 ); BOOST_MPL_ASSERT_RELATION( front<range10>::type::value, ==, 0 ); BOOST_MPL_ASSERT_RELATION( back<range10>::type::value, ==, 9 );
Статья The MPL Reference Manual: range_c раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |