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

Class template overloaded_function

Boost , Chapter 1. Boost.Functional/OverloadedFunction 1.0.0 , Reference

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

Class template overloaded_function

boost::overloaded_function — Function object to overload functions with distinct signatures.

Synopsis

// In header: <boost/functional/overloaded_function.hpp>
template<typename F1, typename F2, ... > 
class overloaded_function {
public:
  // construct/copy/destruct
  overloaded_function(const boost::function< F1 > &, 
                      const boost::function< F2 > &, ...);
  // public member functions
  boost::function_traits< F1 >::result_type 
  operator()(typename boost::function_traits< F1 >::arg1_type, 
             typename boost::function_traits< F1 >::arg2_type, ...) const;
  boost::function_traits< F2 >::result_type 
  operator()(typename boost::function_traits< F2 >::arg1_type, 
             typename boost::function_traits< F2 >::arg2_type, ...) const;
};

Description

Этот объект функции объединяет вместе вызовы к функциям всех указанных типов функций<F1>,<F2>и т.д., которые должны иметь различные сигнатуры функций друг от друга.

Параметры:

<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/destruct

  1. <
    overloaded_function(constboost::function<F1>&,
                       constboost::function<F2>&,...);
    >Постройте перегруженный функциональный объект.

    Любой указатель функции, ссылка на функцию и мономорфный объект функции, которые могут быть преобразованы в объект функции<boost::function>, могут быть указаны в качестве параметра.

    Примечание:К сожалению, невозможно поддерживать объекты полиморфной функции (как объясняетсяздесь).

overloaded_function public member functions

  1. <
    boost::function_traits<F1>::result_type
    operator()(typenameboost::function_traits<F1>::arg1_type,
              typenameboost::function_traits<F1>::arg2_type,...)const;
    >Оператор вызова, соответствующий подписи типа функции, указанной в качестве 1-го шаблонного параметра.

    Это, в свою очередь, вызовет оператора вызова 1-й функции, переданной конструктору.

  2. <
    boost::function_traits<F2>::result_type
    operator()(typenameboost::function_traits<F2>::arg1_type,
              typenameboost::function_traits<F2>::arg2_type,...)const;
    >Оператор вызова, соответствующий подписи типа функции, указанной как 2-й параметр шаблона.

    Это, в свою очередь, вызовет оператора вызова 2-й функции, переданной конструктору.

    Примечание:Аналогичные операторы вызовов присутствуют для всех указанных типов функций<F1>,<F2>и т.д. (даже если они не исчерпывающе перечислены в настоящей документации).


PrevUpHomeNext

Статья Class template overloaded_function раздела Chapter 1. Boost.Functional/OverloadedFunction 1.0.0 Reference может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Reference ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:50:52/0.008821964263916/1