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

The MPL Reference Manual: reverse_fold

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 / Algorithms / Iteration Algorithms / reverse_fold

reverse_fold

Synopsis

template<
      typename Sequence
    , typename State
    , typename BackwardOp
    , typename ForwardOp = _1
    >
struct reverse_fold
{
    typedef unspecified type;
};

Description

Возвращает результат последовательного применения бинарныхНазадВ результате предыдущегоНазадПризывГосударствоЕсли это первый звонок, и каждый элемент в диапазоне []начинают::type,заканчивают::type) в обратном порядке. ЕслиВпередпредоставляется, затем наносится на передний проход для формирования результата, который передается первомуBackwardOpПризыв.

Parameters

Parameter Requirement Description
Последовательность Последовательность Последовательность для итерации.
Государство Любой тип Начальное состояние для первогоBackwardOp/ForwardOpприложения.
Назад БинарноеЛамбда-выражение Операция должна быть выполнена на обратном пути.
Вперед БинарноеЛамбда-выражение Операция должна быть выполнена на переднем перекрестке.

Expression semantics

Для любойПередней Последовательностиs, двоичнойLambda Expressionback_opиforward_op, и произвольного типасостояния:

typedef reverse_fold< s,state,backward_op >::type t;
Return type:

A type

Semantics:

Equivalent to

typedef lambda<backward_op>::type op;
typedef reverse_iter_fold<
      s
    , state
    , apply_wrap2< op, _1, deref<_2> >
    >::type t;
typedef reverse_fold< s,state,backward_op,forward_op >::type t;
Return type:

A type.

Semantics:

Equivalent to

typedef reverse_fold<
      Sequence
    , fold<s,state,forward_op>::type
    , backward_op
    >::type t;

Complexity

Точноразмер:: значениеприложенияback_opиforward_op.

Example

Удаление неотрицательных элементов из последовательности.

typedef list_c<int,5,-1,0,-7,-2,0,-5,4> numbers;
typedef list_c<int,-1,-7,-2,-5> negatives;
typedef reverse_fold<
      numbers
    , list_c<int>
    , if_< less< _2,int_<0> >, push_front<_1,_2,>, _1 >
    >::type result;
BOOST_MPL_ASSERT(( equal< negatives,result > ));
[2]удалитедля более компактного способа сделать это.

Статья The MPL Reference Manual: reverse_fold раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 20:51:28/0.0060360431671143/0