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

Functional

Boost , Chapter 1. Fusion 2.2 , Chapter 1. Fusion 2.2

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

Компоненты для вызова функций и функциональных объектов и для вызова кода Fusion через интерфейс объекта функции.

Header

#include <boost/fusion/functional.hpp>

Fused and unfused forms

Что такое вызов функции?

f (a,b,c)

Это имя и кортеж, написанные рядом друг с другом, слева направо.

Хотя синтаксис C++ не позволяет заменить<(a,b,c)>некой FusionSequence, введение ещё одной функции обеспечивает решение:

invoke(f,my_sequence)

Альтернативно можно применить простое преобразование к<f>для достижения того же эффекта:

f tuple <=> f' (tuple)

Сейчас,<f'>является унарной функцией, которая принимает аргументы к<f>в качестве кортежа;<f'>являетсяслитойформой<f>. При чтении приведенной выше эквивалентности справа налево, чтобы получить обратное преобразование,<f>являетсянесвязаннойформой<f'>.

Calling functions and function objects

Наличие общего кода C++ возвращает произвольные функции, предоставляемые клиентом, когда-то было очень повторяющейся задачей, поскольку различные функции могут отличаться по аритмии, синтаксису вызова и другим свойствам, которые могут быть частью типа. Перенос аргументов в виде последовательностей Fusion и факторинг вызова делает алгоритмы Fusion применимыми к аргументам функции, а также сводит проблему к одному синтаксису вызова и фиксированной частоте (вместо произвольного числа произвольных аргументов умножает несколько синтаксических вариантов умножает дополнительные свойства).

Преобразование несвязанной функции в ее слитый аналог позволяет n-ary вызывать вызовы из алгоритма, который вызывает унарный вызов.Объект полиморфной функциис аргументамиПоследовательности.

Библиотека предоставляет несколько шаблонов функций для вызова различных типов функций и адаптеров для преобразования их в слитую форму, соответственно. Каждый вариант имеет соответствующий шаблон функции генератора, который возвращает пример адаптера для данного аргумента.

Конструкторы можно назвать применяющимиBoost.Functional/Factory.

Making Fusion code callable through a function object interface

Преобразование слитой функции в ее неслитый аналог позволяет создавать функциональные объекты для принятия произвольных вызовов. Другими словами, унарный функциональный объект может быть реализован вместо (возможно, сильно перегруженных) шаблонов функций или операторов вызовов функций.

Библиотека предоставляет как строго типизированный, так и общий вариант этого преобразования. Последний следует использовать в сочетании сBoost.Functional/Forwardдля атакиПередающая проблема.

Оба варианта имеют соответствующий шаблон функции генератора, который возвращает пример адаптера для данного аргумента.


PrevUpHomeNext

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




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



:: Главная :: Chapter 1. Fusion 2.2 ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:48:38/0.0039339065551758/0