123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
- "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
- <!--
- Copyright 2013-2019 Antony Polukhin.
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- -->
- <header name="boost/variant/multivisitors.hpp">
- <using-namespace name="boost"/>
- <para>Provides declarations of <functionname>apply_visitor</functionname> for three or more
- <code><classname>variant</classname></code> parameters.</para>
- <macro name="BOOST_VARAINT_MAX_MULTIVIZITOR_PARAMS">
- <purpose>
- <simpara>Controls maximum amount of <code><classname>variant</classname></code>
- parameters for multi visistors. Not used when <code>std::tuple</code> is available and
- <code><macroname>BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES</macroname></code>
- is not defined.</simpara>
- </purpose>
- <description>
- <para><emphasis role="bold">Note</emphasis>: Default amount is 4. Define it
- to bigger value before including <boost/variant/multivisitors.hpp> to
- increase maximum amount of <code><classname>variant</classname></code>
- parameters for <functionname>apply_visitor</functionname>.</para>
- </description>
- </macro>
- <namespace name="boost">
- <overloaded-function name="apply_visitor /*three or more variant parameters*/">
- <description>
- <simpara>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. See <functionname>apply_visitor</functionname>
- for more information.</simpara>
- </description>
- <signature>
- <template>
- <template-type-parameter name="MultiVisitor"/>
- <template-type-parameter name="Variant1"/>
- <template-type-parameter name="Variant2"/>
- <template-type-parameter name="Variant3"/>
- </template>
- <type>typename MultiVisitor::result_type OR decltype(auto)</type>
- <parameter name="visitor">
- <paramtype>MultiVisitor &</paramtype>
- </parameter>
- <parameter name="operand1">
- <paramtype>Variant1&&</paramtype>
- </parameter>
- <parameter name="operand2">
- <paramtype>Variant2&&</paramtype>
- </parameter>
- <parameter name="operand3">
- <paramtype>Variant3&&</paramtype>
- </parameter>
- <parameter name="other_operands">
- <paramtype>...</paramtype>
- </parameter>
- </signature>
- <signature>
- <template>
- <template-type-parameter name="MultiVisitor"/>
- <template-type-parameter name="Variant1"/>
- <template-type-parameter name="Variant2"/>
- <template-type-parameter name="Variant3"/>
- </template>
- <type>typename MultiVisitor::result_type OR decltype(auto)</type>
- <parameter name="visitor">
- <paramtype>const MultiVisitor &</paramtype>
- </parameter>
- <parameter name="operand1">
- <paramtype>Variant1&&</paramtype>
- </parameter>
- <parameter name="operand2">
- <paramtype>Variant2&&</paramtype>
- </parameter>
- <parameter name="operand3">
- <paramtype>Variant3&&</paramtype>
- </parameter>
- <parameter name="other_operands">
- <paramtype>...</paramtype>
- </parameter>
- </signature>
- </overloaded-function>
- </namespace>
- </header>
|