1<html> 2<head> 3 <title>BOOST_PP_DEDUCE_Z</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_Z</b> macro manually deduces the state of the <b>BOOST_PP_REPEAT</b> construct. 9 </div> 10 <h4>Usage</h4> 11 <div class="code"> 12 <b>BOOST_PP_DEDUCE_Z</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. 17 <i>Automatic-recursion</i> at such depths can be inefficient on some preprocessors. 18 It is not intended to be used directly with the invocation of macros with a <b>_Z</b> suffix such as: 19 <div> 20 <b>BOOST_PP_ENUM_PARAMS_Z</b>(<b>BOOST_PP_DEDUCE_Z</b>(), (a, (b, (c, <b>BOOST_PP_NIL</b>)))) 21 </div> 22 If it is used in this context, the <b>_Z</b> macro will fail. 23 The <b>_Z</b> macros directly concatenate to the <i>r</i> parameter that is passed to them, 24 which would prevent <b>BOOST_PP_DEDUCE_Z</b>() from expanding. 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="repeat.html">BOOST_PP_REPEAT</a></li> 31 </ul> 32 <h4>Requirements</h4> 33 <div> 34 <b>Header:</b> <a href="../headers/repetition/deduce_z.html"><boost/preprocessor/repetition/deduce_z.hpp></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> 49