deduce_r.html 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. <i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
  39. </br><i>© Copyright Paul Mensonides 2002</i>
  40. </div>
  41. <div style="margin-left: 0px;">
  42. <p><small>Distributed under the Boost Software License, Version 1.0. (See
  43. accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
  44. copy at <a href=
  45. "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
  46. </div>
  47. </body>
  48. </html>