![]() |
![]() ![]() ![]() ![]() |
![]() |
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.
:: Главная :: ::
реклама |