]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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"> | |
4 | <!-- | |
5 | Copyright 2013-2014, Antony Polukhin. | |
6 | ||
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) | |
9 | --> | |
10 | <header name="boost/variant/multivisitors.hpp"> | |
11 | <using-namespace name="boost"/> | |
12 | ||
13 | <para>Provides declarations of <functionname>apply_visitor</functionname> for three or more | |
14 | <code><classname>variant</classname></code> parameters.</para> | |
15 | ||
16 | <macro name="BOOST_VARAINT_MAX_MULTIVIZITOR_PARAMS"> | |
17 | <purpose> | |
18 | <simpara>Controls maximum amount of <code><classname>variant</classname></code> | |
19 | parameters for multi visistors. Not used when <code>std::tuple</code> is available and | |
20 | <code><macroname>BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES</macroname></code> | |
21 | is not defined.</simpara> | |
22 | </purpose> | |
23 | ||
24 | <description> | |
25 | <para><emphasis role="bold">Note</emphasis>: Default amount is 4. Define it | |
26 | to bigger value before including <boost/variant/multivisitors.hpp> to | |
27 | increase maximum amount of <code><classname>variant</classname></code> | |
28 | parameters for <functionname>apply_visitor</functionname>.</para> | |
29 | </description> | |
30 | </macro> | |
31 | ||
32 | <namespace name="boost"> | |
33 | <overloaded-function name="apply_visitor /*three or more variant parameters*/"> | |
34 | <description> | |
35 | <simpara>Allows compile-time checked type-safe application of the | |
36 | given visitor to the content of the given variant, ensuring that all | |
37 | types are handled by the visitor. See <functionname>apply_visitor</functionname> | |
38 | for more information.</simpara> | |
39 | </description> | |
40 | ||
41 | <signature> | |
42 | <template> | |
43 | <template-type-parameter name="MultiVisitor"/> | |
44 | <template-type-parameter name="Variant1"/> | |
45 | <template-type-parameter name="Variant2"/> | |
46 | <template-type-parameter name="Variant3"/> | |
47 | </template> | |
48 | ||
49 | <type>typename MultiVisitor::result_type OR decltype(auto)</type> | |
50 | ||
51 | <parameter name="visitor"> | |
52 | <paramtype>MultiVisitor &</paramtype> | |
53 | </parameter> | |
54 | <parameter name="operand1"> | |
55 | <paramtype>Variant1 &</paramtype> | |
56 | </parameter> | |
57 | <parameter name="operand2"> | |
58 | <paramtype>Variant2 &</paramtype> | |
59 | </parameter> | |
60 | <parameter name="operand3"> | |
61 | <paramtype>Variant3 &</paramtype> | |
62 | </parameter> | |
63 | <parameter name="other_operands"> | |
64 | <paramtype>...</paramtype> | |
65 | </parameter> | |
66 | </signature> | |
67 | ||
68 | <signature> | |
69 | <template> | |
70 | <template-type-parameter name="MultiVisitor"/> | |
71 | <template-type-parameter name="Variant1"/> | |
72 | <template-type-parameter name="Variant2"/> | |
73 | <template-type-parameter name="Variant3"/> | |
74 | </template> | |
75 | ||
76 | <type>typename MultiVisitor::result_type OR decltype(auto)</type> | |
77 | ||
78 | <parameter name="visitor"> | |
79 | <paramtype>const MultiVisitor &</paramtype> | |
80 | </parameter> | |
81 | <parameter name="operand1"> | |
82 | <paramtype>Variant1 &</paramtype> | |
83 | </parameter> | |
84 | <parameter name="operand2"> | |
85 | <paramtype>Variant2 &</paramtype> | |
86 | </parameter> | |
87 | <parameter name="operand3"> | |
88 | <paramtype>Variant3 &</paramtype> | |
89 | </parameter> | |
90 | <parameter name="other_operands"> | |
91 | <paramtype>...</paramtype> | |
92 | </parameter> | |
93 | </signature> | |
94 | </overloaded-function> | |
95 | </namespace> | |
96 | </header> |