![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template overloaded_functionBoost , Chapter 1. Boost.Functional/OverloadedFunction 1.0.0 , Reference
|
<Fi > | Каждый тип функции должен быть указан с использованием следующего синтаксиса (который является предпочтительным синтаксисом Boost.Function):<result_type(argument1_type,argumgnet2_type,...)> |
В некоторых случаях шаблон функции<make_overloaded_function
>может быть полезен для построения перегруженного функционального объекта без явного указания типов функций.
Необходимо указать, по крайней мере, два различных типа функций (потому что перегрузка между одной или нулевой функцией отсутствует). Максимальное количество функций для перегрузки задается макроконфигурацией<BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX
>. Максимальное количество параметров функции для каждого из указанных типов функций задается макроконфигурацией<BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX
>.
См.:Учебный раздел,<make_overloaded_function
>,<BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX
>,<BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX
>, Boost.Function.
overloaded_function
public
construct/copy/destructoverloaded_function(constboost::function<F1>&, constboost::function<F2>&,...);>Постройте перегруженный функциональный объект.
Любой указатель функции, ссылка на функцию и мономорфный объект функции, которые могут быть преобразованы в объект функции<boost::function
>, могут быть указаны в качестве параметра.
Примечание:К сожалению, невозможно поддерживать объекты полиморфной функции (как объясняетсяздесь).
overloaded_function
public member functionsboost::function_traits<F1>::result_type operator()(typenameboost::function_traits<F1>::arg1_type, typenameboost::function_traits<F1>::arg2_type,...)const;>Оператор вызова, соответствующий подписи типа функции, указанной в качестве 1-го шаблонного параметра.
Это, в свою очередь, вызовет оператора вызова 1-й функции, переданной конструктору.
boost::function_traits<F2>::result_type operator()(typenameboost::function_traits<F2>::arg1_type, typenameboost::function_traits<F2>::arg2_type,...)const;>Оператор вызова, соответствующий подписи типа функции, указанной как 2-й параметр шаблона.
Это, в свою очередь, вызовет оператора вызова 2-й функции, переданной конструктору.
Примечание:Аналогичные операторы вызовов присутствуют для всех указанных типов функций<F1
>,<F2
>и т.д. (даже если они не исчерпывающе перечислены в настоящей документации).
Статья Class template overloaded_function раздела Chapter 1. Boost.Functional/OverloadedFunction 1.0.0 Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |