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

fused_function_object

Boost , Chapter 1. Fusion 2.2 , Adapters

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

Унарный шаблон адаптера Polymorphic Function Object для целевой функции Polymorphic Function Object. Для этого требуется Forward Sequence, содержащая аргументы для целевой функции.

Тип целевой функции может быть квалифицированным или эталонным. Квалификация Const сохраняется и распространяется соответствующим образом (другими словами, для объекта целевой функции, который является const, могут использоваться только версии const operator() или, если объект целевой функции удерживается значением, адаптер является const).

Header
#include <boost/fusion/functional/adapter/fused_function_object.hpp>
Synopsis
template <class Function>
class fused_function_object;
Template parameters

Параметр

Описание

По умолчанию

Функция

Полиморфный объект

Model of

Notation

R

Возможный объект полиморфной функции Тип или тип ссылки

r

Объект, конвертируемый в R

s

Последовательность аргументов, принятых r

f

Пример fused<R>

Expression Semantics

Выражение

Семантика

fused_function_object<R>(r>

Создает слитую функцию, как описано выше, инициализирует целевую функцию с r.

fused_function_object<R>()

Создает слитую функцию, как описано выше, пытается использовать конструктор по умолчанию R.

f()

Звонки r с элементами в s в качестве аргументов.

Example
template<class SeqOfSeqs, class Func>
typename result_of::transform< zip_view<SeqOfSeqs> const,
    fused_function_object<Func const &> >::type
n_ary_transform(SeqOfSeqs const & s, Func const & f)
{
    return transform(zip_view<SeqOfSeqs>(s),
        fused_function_object<Func const &>(f));
}
struct sub
{
    template <typename Sig>
    struct result;
    template <class Self, typename T>
    struct result< Self(T,T) >
    { typedef typename remove_reference<T>::type type; };
    template<typename T>
    T operator()(T lhs, T rhs) const
    {
        return lhs - rhs;
    }
};
void try_it()
{
    vector<int,float> a(2,2.0f);
    vector<int,float> b(1,1.5f);
    vector<int,float> c(1,0.5f);
    assert(c == n_ary_transform(vector_tie(a,b), sub()));
}
See also

PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 00:50:32/0.0021259784698486/0