]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/preprocessor/doc/ref/deduce_r.html
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / preprocessor / doc / ref / deduce_r.html
CommitLineData
7c673cae
FG
1<html>
2<head>
3 <title>BOOST_PP_DEDUCE_R</title>
4 <link rel="stylesheet" type="text/css" href="../styles.css">
5</head>
6<body>
7 <div style="margin-left: 0px;">
8 The <b>BOOST_PP_DEDUCE_R</b> macro manually deduces the state of the <b>BOOST_PP_FOR</b> construct.
9 </div>
10 <h4>Usage</h4>
11 <div class="code">
12 <b>BOOST_PP_DEDUCE_R</b>()
13 </div>
14 <h4>Remarks</h4>
15 <div>
16 This macro is intended to avoid the use of <i>automatic-recursion</i> at deep expansion depths.&nbsp;
17 <i>Automatic-recursion</i> at such depths can be inefficient on some preprocessors.&nbsp;
18 It is not intended to be used directly with the invocation of macros with a <b>_R</b> suffix such as:
19 <div>
20 <b>BOOST_PP_LIST_ENUM_R</b>(<b>BOOST_PP_DEDUCE_R</b>(), (a, (b, (c, <b>BOOST_PP_NIL</b>))))
21 </div>
22 If it is used in this context, the <b>_R</b> macro will fail.&nbsp;
23 The <b>_R</b> macros directly concatenate to the <i>r</i> parameter that is passed to them,
24 which would prevent <b>BOOST_PP_DEDUCE_R</b>() from expanding.&nbsp;
25 Furthermore, it is pointless to use this macro in a situation such as this
26 because it would already be too late to gain any efficiency.
27 </div>
28 <h4>See Also</h4>
29 <ul>
30 <li><a href="for.html">BOOST_PP_FOR</a></li>
31 </ul>
32 <h4>Requirements</h4>
33 <div>
34 <b>Header:</b> &nbsp;<a href="../headers/repetition/deduce_r.html">&lt;boost/preprocessor/repetition/deduce_r.hpp&gt;</a>
35 </div>
36 <hr size="1">
37 <div style="margin-left: 0px;">
38