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

Function apply_visitor

Boost , The Boost C++ Libraries BoostBook Documentation Subset , 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

Function apply_visitor

boost::apply_visitor — Allows compile-time checked type-safe application of the given visitor to the content of the given variant, ensuring that all types are handled by the visitor.

Synopsis

// In header: <boost/variant/apply_visitor.hpp>

template<typename Visitor, typename Variant> 
  typename Visitor::result_type 
  apply_visitor(Visitor & visitor, Variant & operand);
template<typename Visitor, typename Variant> 
  typename Visitor::result_type 
  apply_visitor(const Visitor & visitor, Variant & operand);
template<typename BinaryVisitor, typename Variant1, typename Variant2> 
  typename BinaryVisitor::result_type OR decltype(auto) 
  apply_visitor(BinaryVisitor & visitor, Variant1 & operand1, 
                Variant2 & operand2);
template<typename BinaryVisitor, typename Variant1, typename Variant2> 
  typename BinaryVisitor::result_type OR decltype(auto) 
  apply_visitor(const BinaryVisitor & visitor, Variant1 & operand1, 
                Variant2 & operand2);
template<typename MultiVisitor, typename Variant1, typename Variant2, 
         typename Variant3> 
  typename MultiVisitor::result_type OR decltype(auto) 
  apply_visitor(MultiVisitor & visitor, Variant1 & operand1, 
                Variant2 & operand2, Variant3 & operand3, ... other_operands);
template<typename MultiVisitor, typename Variant1, typename Variant2, 
         typename Variant3> 
  typename MultiVisitor::result_type OR decltype(auto) 
  apply_visitor(const MultiVisitor & visitor, Variant1 & operand1, 
                Variant2 & operand2, Variant3 & operand3, ... other_operands);
template<typename Visitor> 
  apply_visitor_delayed_t<Visitor> apply_visitor(Visitor & visitor);
template<typename Visitor> 
  apply_visitor_delayed_cpp14_t<Visitor> apply_visitor(Visitor & visitor);

Description

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

  • Перегрузка, бухта, бухта и т.д.< [0] >.
  • Перегрузка, бульварная дорога, бульварная дорога, бульварная дорога, бульварная дорога и т.д.< [2] >Св.
  • Перегрузка груза, груза, груза, груза, груза, груза, груза, груза.< [4] >Анан. Верхний предел< [5] >Макро. Это факт, подтверждающий< [6] >(см.] [«Глава»).
  • Перегрузка, взвешивание,< [13] >< [14] >,< [14] >, [два],< [15] >,< [16] >,< [16] >, ,< [14] >,< [14] >, [два] , [два] , [два] , [два] , [два] , [два] , [два] , [два] , [два] , [два] , [два] , [два] , [два] . (Это означает, что мы должны быть готовы к тому, что мы будем иметь дело с ними.)
Перегрузки, принимающие один операнд, вызывают унарную функцию вызова оператора данного посетителя на содержание данного операндаvariant.
  • Перегрузки, принимающие два операнда, вызывают оператор вызова двоичной функции данного посетителя на содержание данногоvariantоперанда.
  • Перегрузки, принимающие три или более операндов, вызывают оператор вызова функции данного посетителя на содержание данных операндовvariant. Максимальное количество параметров, контролируемыхBOOST_VARAINT_MAX_MULTIVIZITOR_PARAMSмакро. Эти функции фактически определены в заголовкеboost/variant/multivisitors.hpp(см.раздел под названием “Header).
  • Перегрузки, принимающие только посетителя, возвращаютC++03 compatible generic function objectилиC++14 compatible generic function object, которые принимают либо один, два или произвольный подсчет аргументов и вызываютapply_visitorс использованием этих аргументов иvisitor, таким образом, ведя себя как указано выше. (Это поведение особенно полезно, например, когда нужно оперировать каждым элементом последовательности вариантов объектов с помощью стандартного библиотечного алгоритма.)
  • [ORIG_END] -->

    Возвращение:

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

    Требуется:

    Данный посетитель должен выполнить требования концепцииStaticVisitorв отношении каждого из ограниченных типов данного<variant>.

    Броски:

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

    PrevUpHomeNext

    Статья Function apply_visitor раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.




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



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


    реклама


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

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