1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
3 "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
5 Copyright 2013-2014, Antony Polukhin.
7 Distributed under the Boost Software License, Version 1.0. (See accompanying
8 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 <header name="boost/variant/multivisitors.hpp">
11 <using-namespace name="boost"/>
13 <para>Provides declarations of <functionname>apply_visitor</functionname> for three or more
14 <code><classname>variant</classname></code> parameters.</para>
16 <macro name="BOOST_VARAINT_MAX_MULTIVIZITOR_PARAMS">
18 <simpara>Controls maximum amount of <code><classname>variant</classname></code>
19 parameters for multi visistors. </simpara>
23 <para><emphasis role="bold">Note</emphasis>: Default amount is 4. Define it
24 to bigger value before including <boost/variant/multivisitors.hpp> to
25 increase maximum amount of <code><classname>variant</classname></code>
26 parameters for <functionname>apply_visitor</functionname>.</para>
30 <namespace name="boost">
31 <overloaded-function name="apply_visitor /*three or more variant parameters*/">
33 <simpara>Allows compile-time checked type-safe application of the
34 given visitor to the content of the given variant, ensuring that all
35 types are handled by the visitor. See <functionname>apply_visitor</functionname>
36 for more information.</simpara>
41 <template-type-parameter name="MultiVisitor"/>
42 <template-type-parameter name="Variant1"/>
43 <template-type-parameter name="Variant2"/>
44 <template-type-parameter name="Variant3"/>
47 <type>typename MultiVisitor::result_type</type>
49 <parameter name="visitor">
50 <paramtype>MultiVisitor &</paramtype>
52 <parameter name="operand1">
53 <paramtype>Variant1 &</paramtype>
55 <parameter name="operand2">
56 <paramtype>Variant2 &</paramtype>
58 <parameter name="operand3">
59 <paramtype>Variant3 &</paramtype>
61 <parameter name="other_operands">
62 <paramtype>...</paramtype>
68 <template-type-parameter name="MultiVisitor"/>
69 <template-type-parameter name="Variant1"/>
70 <template-type-parameter name="Variant2"/>
71 <template-type-parameter name="Variant3"/>
74 <type>typename MultiVisitor::result_type</type>
76 <parameter name="visitor">
77 <paramtype>const MultiVisitor &</paramtype>
79 <parameter name="operand1">
80 <paramtype>Variant1 &</paramtype>
82 <parameter name="operand2">
83 <paramtype>Variant2 &</paramtype>
85 <parameter name="operand3">
86 <paramtype>Variant3 &</paramtype>
88 <parameter name="other_operands">
89 <paramtype>...</paramtype>
92 </overloaded-function>