Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

The MPL Reference Manual: range_c

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Front Page / Sequences / Classes / range_c

range_c

Synopsis

template<
      typename T
    , T Start
    , T Finish
    >
struct range_c
{
    typedef integral_c<T,Start> start;
    typedef integral_c<T,Finish> finish;
    // unspecified
    // ...
};

Description

Range_cСортировкаПоследовательность случайного доступаИнтегральная постояннаяс. Заметьте, что это не так. Расширяемая последовательность, внутренние метафункции построения последовательностей, такие какpush_frontи алгоритмы преобразования, такие какзаменитьнепосредственно не применимы — чтобы иметь возможность использовать их, сначала нужно скопировать содержимое диапазона в более подходящую последовательность.

Expression semantics

В следующей таблицеrявляется примеромдиапазона_c,nявляетсяинтегральной постоянной,Tявляется произвольным интегральным типом, аnиmявляются интегральными постоянными значениями типаT.

Expression Semantics
<
range_c<T,n,m>
range_c<T,n,m>::type
>
ОтсортированнаяСлучайная последовательность доступаинтегральных постоянных оберток для полуоткрытого диапазона значенийn,m:integral_c,integral_c,integral_c].
начать::type Итератор, указывающий на началоr; см.Последовательность случайного доступа.
конец::тип Итератор, указывающий на конецr; см.Последовательность случайного доступа.
размер::тип Размерr; см.Последовательность случайного доступа.
пустой::type БулеваИнтегральная постояннаяcтакова, чтоc:: значение==истинно, если и только еслиrпуст; см.Последовательность случайного доступа.
фронт::type Первый элемент вr; см.Последовательность случайного доступа.
назад::type Последний элемент вr; см.Последовательность случайного доступа.
в::type nth элемент от началаr; см.Последовательность случайного доступа.

Example

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.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 04:57:57/0.025308132171631/1