]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/proto/doc/reference/proto_fwd.xml
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / proto / doc / reference / proto_fwd.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright 2012 Eric Niebler
4
5 Distributed under the Boost
6 Software License, Version 1.0. (See accompanying
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 -->
9 <header name="boost/proto/proto_fwd.hpp">
10 <para>Forward declarations of all of proto's public types and functions. </para>
11 <namespace name="boost">
12 <namespace name="proto">
13 <struct name="callable">
14 <purpose>Base class for callable <conceptname>PolymorphicFunctionObject</conceptname>s</purpose>
15 <description>
16 <para>
17 When defining a callable <conceptname>PolymorphicFunctionObject</conceptname>, inherit
18 from <computeroutput>proto::callable</computeroutput> so that it can be used to create
19 a <conceptname>CallableTransform</conceptname>.
20 </para>
21 <para>
22 <computeroutput><classname>proto::is_callable</classname>&lt;T&gt;::value</computeroutput> is
23 <computeroutput>true</computeroutput> for types that inherit from
24 <computeroutput>proto::callable</computeroutput>.
25 </para>
26 </description>
27 </struct>
28 <data-member name="N">
29 <description>
30 <para>Array size wildcard for Proto grammars that match array terminals.</para></description>
31 <type>int const</type>
32 </data-member>
33 <namespace name="functional">
34 <typedef name="make_terminal">
35 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::terminal</classname> &gt;</type>
36 </typedef>
37 <typedef name="make_unary_plus">
38 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::unary_plus</classname> &gt;</type>
39 </typedef>
40 <typedef name="make_negate">
41 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::negate</classname> &gt;</type>
42 </typedef>
43 <typedef name="make_dereference">
44 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::dereference</classname> &gt;</type>
45 </typedef>
46 <typedef name="make_complement">
47 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::complement</classname> &gt;</type>
48 </typedef>
49 <typedef name="make_address_of">
50 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::address_of</classname> &gt;</type>
51 </typedef>
52 <typedef name="make_logical_not">
53 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::logical_not</classname> &gt;</type>
54 </typedef>
55 <typedef name="make_pre_inc">
56 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::pre_inc</classname> &gt;</type>
57 </typedef>
58 <typedef name="make_pre_dec">
59 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::pre_dec</classname> &gt;</type>
60 </typedef>
61 <typedef name="make_post_inc">
62 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::post_inc</classname> &gt;</type>
63 </typedef>
64 <typedef name="make_post_dec">
65 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::post_dec</classname> &gt;</type>
66 </typedef>
67 <typedef name="make_shift_left">
68 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_left</classname> &gt;</type>
69 </typedef>
70 <typedef name="make_shift_right">
71 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_right</classname> &gt;</type>
72 </typedef>
73 <typedef name="make_multiplies">
74 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::multiplies</classname> &gt;</type>
75 </typedef>
76 <typedef name="make_divides">
77 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::divides</classname> &gt;</type>
78 </typedef>
79 <typedef name="make_modulus">
80 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::modulus</classname> &gt;</type>
81 </typedef>
82 <typedef name="make_plus">
83 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::plus</classname> &gt;</type>
84 </typedef>
85 <typedef name="make_minus">
86 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::minus</classname> &gt;</type>
87 </typedef>
88 <typedef name="make_less">
89 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::less</classname> &gt;</type>
90 </typedef>
91 <typedef name="make_greater">
92 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::greater</classname> &gt;</type>
93 </typedef>
94 <typedef name="make_less_equal">
95 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::less_equal</classname> &gt;</type>
96 </typedef>
97 <typedef name="make_greater_equal">
98 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::greater_equal</classname> &gt;</type>
99 </typedef>
100 <typedef name="make_equal_to">
101 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::equal_to</classname> &gt;</type>
102 </typedef>
103 <typedef name="make_not_equal_to">
104 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::not_equal_to</classname> &gt;</type>
105 </typedef>
106 <typedef name="make_logical_or">
107 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::logical_or</classname> &gt;</type>
108 </typedef>
109 <typedef name="make_logical_and">
110 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::logical_and</classname> &gt;</type>
111 </typedef>
112 <typedef name="make_bitwise_and">
113 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_and</classname> &gt;</type>
114 </typedef>
115 <typedef name="make_bitwise_or">
116 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_or</classname> &gt;</type>
117 </typedef>
118 <typedef name="make_bitwise_xor">
119 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_xor</classname> &gt;</type>
120 </typedef>
121 <typedef name="make_comma">
122 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::comma</classname> &gt;</type>
123 </typedef>
124 <typedef name="make_mem_ptr">
125 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::mem_ptr</classname> &gt;</type>
126 </typedef>
127 <typedef name="make_assign">
128 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::assign</classname> &gt;</type>
129 </typedef>
130 <typedef name="make_shift_left_assign">
131 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_left_assign</classname> &gt;</type>
132 </typedef>
133 <typedef name="make_shift_right_assign">
134 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_right_assign</classname> &gt;</type>
135 </typedef>
136 <typedef name="make_multiplies_assign">
137 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::multiplies_assign</classname> &gt;</type>
138 </typedef>
139 <typedef name="make_divides_assign">
140 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::divides_assign</classname> &gt;</type>
141 </typedef>
142 <typedef name="make_modulus_assign">
143 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::modulus_assign</classname> &gt;</type>
144 </typedef>
145 <typedef name="make_plus_assign">
146 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::plus_assign</classname> &gt;</type>
147 </typedef>
148 <typedef name="make_minus_assign">
149 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::minus_assign</classname> &gt;</type>
150 </typedef>
151 <typedef name="make_bitwise_and_assign">
152 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_and_assign</classname> &gt;</type>
153 </typedef>
154 <typedef name="make_bitwise_or_assign">
155 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_or_assign</classname> &gt;</type>
156 </typedef>
157 <typedef name="make_bitwise_xor_assign">
158 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_xor_assign</classname> &gt;</type>
159 </typedef>
160 <typedef name="make_subscript">
161 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::subscript</classname> &gt;</type>
162 </typedef>
163 <typedef name="make_if_else">
164 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::if_else_</classname> &gt;</type>
165 </typedef>
166 <typedef name="make_function">
167 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::function</classname> &gt;</type>
168 </typedef>
169 </namespace>
170 <typedef name="_flatten">
171 <type><classname>proto::functional::flatten</classname></type>
172 </typedef>
173 <typedef name="_make_pair">
174 <type><classname>proto::functional::make_pair</classname></type>
175 </typedef>
176 <typedef name="_first">
177 <type><classname>proto::functional::first</classname></type>
178 </typedef>
179 <typedef name="_second">
180 <type><classname>proto::functional::second</classname></type>
181 </typedef>
182 <typedef name="_pop_back">
183 <type><classname>proto::functional::pop_back</classname></type>
184 </typedef>
185 <typedef name="_pop_front">
186 <type><classname>proto::functional::pop_front</classname></type>
187 </typedef>
188 <typedef name="_push_back">
189 <type><classname>proto::functional::push_back</classname></type>
190 </typedef>
191 <typedef name="_push_front">
192 <type><classname>proto::functional::push_front</classname></type>
193 </typedef>
194 <typedef name="_reverse">
195 <type><classname>proto::functional::reverse</classname></type>
196 </typedef>
197 <typedef name="_eval">
198 <type><classname>proto::functional::eval</classname></type>
199 </typedef>
200 <typedef name="_deep_copy">
201 <type><classname>proto::functional::deep_copy</classname></type>
202 </typedef>
203 <typedef name="_make_terminal">
204 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::terminal</classname> &gt;</type>
205 </typedef>
206 <typedef name="_make_unary_plus">
207 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::unary_plus</classname> &gt;</type>
208 </typedef>
209 <typedef name="_make_negate">
210 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::negate</classname> &gt;</type>
211 </typedef>
212 <typedef name="_make_dereference">
213 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::dereference</classname> &gt;</type>
214 </typedef>
215 <typedef name="_make_complement">
216 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::complement</classname> &gt;</type>
217 </typedef>
218 <typedef name="_make_address_of">
219 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::address_of</classname> &gt;</type>
220 </typedef>
221 <typedef name="_make_logical_not">
222 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::logical_not</classname> &gt;</type>
223 </typedef>
224 <typedef name="_make_pre_inc">
225 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::pre_inc</classname> &gt;</type>
226 </typedef>
227 <typedef name="_make_pre_dec">
228 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::pre_dec</classname> &gt;</type>
229 </typedef>
230 <typedef name="_make_post_inc">
231 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::post_inc</classname> &gt;</type>
232 </typedef>
233 <typedef name="_make_post_dec">
234 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::post_dec</classname> &gt;</type>
235 </typedef>
236 <typedef name="_make_shift_left">
237 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_left</classname> &gt;</type>
238 </typedef>
239 <typedef name="_make_shift_right">
240 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_right</classname> &gt;</type>
241 </typedef>
242 <typedef name="_make_multiplies">
243 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::multiplies</classname> &gt;</type>
244 </typedef>
245 <typedef name="_make_divides">
246 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::divides</classname> &gt;</type>
247 </typedef>
248 <typedef name="_make_modulus">
249 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::modulus</classname> &gt;</type>
250 </typedef>
251 <typedef name="_make_plus">
252 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::plus</classname> &gt;</type>
253 </typedef>
254 <typedef name="_make_minus">
255 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::minus</classname> &gt;</type>
256 </typedef>
257 <typedef name="_make_less">
258 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::less</classname> &gt;</type>
259 </typedef>
260 <typedef name="_make_greater">
261 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::greater</classname> &gt;</type>
262 </typedef>
263 <typedef name="_make_less_equal">
264 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::less_equal</classname> &gt;</type>
265 </typedef>
266 <typedef name="_make_greater_equal">
267 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::greater_equal</classname> &gt;</type>
268 </typedef>
269 <typedef name="_make_equal_to">
270 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::equal_to</classname> &gt;</type>
271 </typedef>
272 <typedef name="_make_not_equal_to">
273 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::not_equal_to</classname> &gt;</type>
274 </typedef>
275 <typedef name="_make_logical_or">
276 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::logical_or</classname> &gt;</type>
277 </typedef>
278 <typedef name="_make_logical_and">
279 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::logical_and</classname> &gt;</type>
280 </typedef>
281 <typedef name="_make_bitwise_and">
282 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_and</classname> &gt;</type>
283 </typedef>
284 <typedef name="_make_bitwise_or">
285 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_or</classname> &gt;</type>
286 </typedef>
287 <typedef name="_make_bitwise_xor">
288 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_xor</classname> &gt;</type>
289 </typedef>
290 <typedef name="_make_comma">
291 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::comma</classname> &gt;</type>
292 </typedef>
293 <typedef name="_make_mem_ptr">
294 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::mem_ptr</classname> &gt;</type>
295 </typedef>
296 <typedef name="_make_assign">
297 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::assign</classname> &gt;</type>
298 </typedef>
299 <typedef name="_make_shift_left_assign">
300 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_left_assign</classname> &gt;</type>
301 </typedef>
302 <typedef name="_make_shift_right_assign">
303 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::shift_right_assign</classname> &gt;</type>
304 </typedef>
305 <typedef name="_make_multiplies_assign">
306 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::multiplies_assign</classname> &gt;</type>
307 </typedef>
308 <typedef name="_make_divides_assign">
309 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::divides_assign</classname> &gt;</type>
310 </typedef>
311 <typedef name="_make_modulus_assign">
312 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::modulus_assign</classname> &gt;</type>
313 </typedef>
314 <typedef name="_make_plus_assign">
315 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::plus_assign</classname> &gt;</type>
316 </typedef>
317 <typedef name="_make_minus_assign">
318 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::minus_assign</classname> &gt;</type>
319 </typedef>
320 <typedef name="_make_bitwise_and_assign">
321 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_and_assign</classname> &gt;</type>
322 </typedef>
323 <typedef name="_make_bitwise_or_assign">
324 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_or_assign</classname> &gt;</type>
325 </typedef>
326 <typedef name="_make_bitwise_xor_assign">
327 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::bitwise_xor_assign</classname> &gt;</type>
328 </typedef>
329 <typedef name="_make_subscript">
330 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::subscript</classname> &gt;</type>
331 </typedef>
332 <typedef name="_make_if_else">
333 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::if_else_</classname> &gt;</type>
334 </typedef>
335 <typedef name="_make_function">
336 <type><classname>proto::functional::make_expr</classname>&lt; <classname>proto::tag::function</classname> &gt;</type>
337 </typedef>
338 <typedef name="_childN">
339 <purpose>For each <replaceable>N</replaceable> in <computeroutput>[0,BOOST_PROTO_MAX_ARITY)</computeroutput></purpose>
340 <type><classname>proto::_child_c</classname>&lt; <replaceable>N</replaceable> &gt;</type>
341 </typedef>
342 <typedef name="_child">
343 <type><classname alt="proto::_childN">proto::_child0</classname></type>
344 </typedef>
345 <typedef name="_left">
346 <type><classname alt="proto::_childN">proto::_child0</classname></type>
347 </typedef>
348 <typedef name="_right">
349 <type><classname alt="proto::_childN">proto::_child1</classname></type>
350 </typedef>
351 </namespace>
352 </namespace>
353 <macro name="BOOST_PROTO_MAX_ARITY">
354 <purpose>Controls the maximum number of child nodes an expression may have.</purpose>
355 <description>
356 <para>
357 <computeroutput>BOOST_PROTO_MAX_ARITY</computeroutput> defaults to 10. It may be set higher or lower, but not
358 lower than 3. Setting it higher will have a negative effect on compile times.
359 </para>
360 <para>
361 See also <computeroutput><macroname>BOOST_PROTO_MAX_FUNCTION_CALL_ARITY</macroname></computeroutput>.
362 </para>
363 </description>
364 </macro>
365 <macro name="BOOST_PROTO_MAX_LOGICAL_ARITY">
366 <purpose>Controls the maximum number of sub-grammars that
367 <computeroutput>
368 <classname alt="boost::proto::or_">proto::or_&lt;&gt;</classname>
369 </computeroutput> and
370 <computeroutput>
371 <classname alt="boost::proto::and_">proto::and_&lt;&gt;</classname>
372 </computeroutput> accept.</purpose>
373 <description>
374 <para>
375 <computeroutput>BOOST_PROTO_MAX_LOGICAL_ARITY</computeroutput> defaults to 10. It may be set higher or lower. Setting
376 it higher will have a negative effect on compile times.
377 </para>
378 </description>
379 </macro>
380 <macro name="BOOST_PROTO_MAX_FUNCTION_CALL_ARITY">
381 <purpose>Controls the maximum number of arguments that <computeroutput>operator()</computeroutput> overloads
382 accept.</purpose>
383 <description>
384 <para>
385 When setting
386 <computeroutput>
387 <macroname>BOOST_PROTO_MAX_ARITY</macroname>
388 </computeroutput> higher than the default, compile times
389 slow down considerably. That is due in large part to the explosion in the number of
390 <computeroutput>operator()</computeroutput> overloads that must be generated for each
391 Proto expression type. By setting <computeroutput>BOOST_PROTO_MAX_FUNCTION_CALL_ARITY</computeroutput>
392 lower than <computeroutput><macroname>BOOST_PROTO_MAX_ARITY</macroname></computeroutput>,
393 compile times can be sped up considerably.
394 </para>
395 </description>
396 </macro>
397 </header>