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

fused_procedure

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

UnaryPolymorphic Function Objectшаблон адаптера дляCallable Objectцелевых функций. Требуетсяпередовая последовательность, которая содержит аргументы для целевой функции.

Результат отбрасывается и тип возврата адаптера<void>.

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

Если целевая функция является указателем на функцию членов, соответствующий объект может быть указан в качестве эталона, указателя или умного указателя. В последнем случае должна быть определена отдельно стоящая<get_pointer>функция (Буст обеспечивает эту функцию для<std::auto_ptr<boost::shared_ptr>).

Целевая функция не должна быть указателем на объект-член (отсылка на такой указатель без возврата чего-либо не имеет смысла, поэтому этот случай не реализован).

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

Параметр

Описание

по умолчанию

Function

Вызываемый объекттип

Model of

Notation

R

Возможен конст-квалифицированныйтип Callable Objectили тип ссылки на него

r

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

s

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

f

Пример<fused_procedure<R>>

Expression Semantics

выражение

Семантика

<fused_procedure<R>(r)>

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

.

<fused_procedure<R>()>

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

<f(s)>

Призывает<r>с элементами в<s>в качестве аргументов.

Example
template<class SequenceOfSequences, class Func>
void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
{
    for_each(zip_view<SequenceOfSequences>(s),
        fused_procedure<Func const &>(f));
}
void try_it()
{
    vector<int,float> a(2,2.0f);
    vector<int,float> b(1,1.5f);
    using namespace boost::lambda;
    n_ary_for_each(vector_tie(a,b), _1 -= _2);
    assert(a == make_vector(1,0.5f));
}
See also

PrevUpHomeNext

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




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



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


реклама


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

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