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

reverse_fold

Boost , Chapter 1. Fusion 2.2 , Functions

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

PrevUpHomeNext
Description

Для последовательности<seq>, начального состояния<initial_state>и объекта двоичной функции или указателя функции<f>,<reverse_fold>возвращает результат повторного применения двоичной<f>к результату предыдущего вызова<f><inital_state>, если это первый вызов) и каждый элемент<seq>.

Synopsis
template<
    typename Sequence,
    typename State,
    typename F
    >
typename result_of::reverse_fold<Sequence, State const, F>::type reverse_fold(
    Sequence& seq, State const& initial_state, F f);
template<
    typename Sequence,
    typename State,
    typename F
    >
typename result_of::reverse_fold<Sequence const, State const, F>::type reverse_fold(
    Sequence const& seq, State const& initial_state, F f);
template<
    typename Sequence,
    typename State,
    typename F
    >
typename result_of::reverse_fold<Sequence, State, F>::type reverse_fold(
    Sequence& seq, State& initial_state, F f);
template<
    typename Sequence,
    typename State,
    typename F
    >
typename result_of::reverse_fold<Sequence const, State, F>::type reverse_fold(
    Sequence const& seq, State& initial_state, F f);

Table 1.41. Parameters

Параметр

Требование

Описание

<seq>

МодельДвунаправленная последовательность

Аргументация операции

<initial_state>

Любой тип

Начальное состояние

<f>

<f(s,e)>с возвратным типом<boost::result_of><FS,E[gt]::типдля текущего состояния<s>типа<S>и для каждого элемента<e>типа<E>в<seq>

Аргументация операции


Expression Semantics
reverse_fold(seq, initial_state, f);

Тип возврата: Любой тип

Семантика:<f(... f(f(initial_state,eN),eN-1) ...e1)>, где<e1 ...eN>являются последовательными элементами<seq>.

Complexity

Линейное, точно<result_of::size><Последовательность>::значениеприложения<f>.

Header
#include <boost/fusion/algorithm/iteration/reverse_fold.hpp>
#include <boost/fusion/include/reverse_fold.hpp>
Example
struct make_string
{
    typedef std::string result_type;
    template<typename T>
    std::string operator()(const std::string& str, const T& t) const
    {
        return str + boost::lexical_cast<std::string>(t);
    }
};
...
const vector<int,int> vec(1,2);
assert(reverse_fold(vec,std::string(""), make_string()) == "21");

PrevUpHomeNext

Статья reverse_fold раздела Chapter 1. Fusion 2.2 Functions может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:11:24/0.0067818164825439/0