The BOOST_PP_REPEAT_z macro
      represents a reentry into the BOOST_PP_REPEAT repetition
      construct. 
    Usage
     BOOST_PP_REPEAT_ ## z(count, macro,
      data) 
    Arguments
    
      - z
-  The next available BOOST_PP_REPEAT dimension. 
- count
-  The number of repetitious calls to macro.  Valid values
        range from 0 to BOOST_PP_LIMIT_REPEAT. 
- macro
-  A ternary operation of the form macro(z, n, data). 
        This macro is expanded by BOOST_PP_REPEAT with the next
        available repetition depth, the current repetition number, and the
        auxiliary data argument.  
- data
-  Auxiliary data passed to macro. 
Remarks
     This macro expands to the sequence:
      
 macro(z, 0, data) macro(z,
        1, data) ... macro(z, count - 1,
        data) 
     At certain times, it may be necessary to perform the concatenation
      with 
BOOST_PP_CAT rather than the preprocessor token-pasting
      operator.  This happens when the 
z value is a macro
      invocation itself.  It needs a delay to allow it to expand.  The
      syntax in such a scenario becomes:
      
 BOOST_PP_CAT(BOOST_PP_REPEAT_, z)(count,
        macro, data) 
    See Also
    
    Requirements
    
    Sample Code
    
      #include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#define TEXT(z, n, text) BOOST_PP_COMMA_IF(n) text
#define TEMPLATE(z, n, _) \
   BOOST_PP_COMMA_IF(n) \
   template< \
      BOOST_PP_REPEAT_ ## z( \
         BOOST_PP_INC(n), \
         TEXT, class \
      ) \
   > class T ## n \
   /**/
BOOST_PP_REPEAT(3, TEMPLATE, nil)
   /*
   expands to:
      template<class> class T0,
      template<class, class> class T1,
      template<class, class, class> class T2
   */
 
    
     © Copyright Housemarque Oy 2002 
      © Copyright Paul Mensonides 2002
      © Copyright Edward Diener 2014