The BOOST_PP_SEQ_FOR_EACH_PRODUCT_R macro repeats a macro for each cartesian product of several seqs.  It reenters BOOST_PP_FOR with maximum efficiency.

Usage

BOOST_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, seqs)

Arguments

r
The next available BOOST_PP_FOR repetition.
macro
The binary macro of the form macro(r, product).  This macro is expanded by BOOST_PP_FOR_EACH_PRODUCT with each cartesian product in seqs.  It is expanded with the next available BOOST_PP_FOR repetition and a seq containing a cartesian product. 
seqs
A seq of seqs from which cartesian products are obtained.

Remarks

This macro is a repetition construct.  If two seqs are (a)(b)(c) and (x)(y)(z), this macro will produce the following sequence:
macro(r, (a)(x)) macro(r, (a)(y)) macro(r, (a)(z)) \
macro(r, (b)(x)) macro(r, (b)(y)) macro(r, (b)(z)) \
macro(r, (c)(x)) macro(r, (c)(y)) macro(r, (c)(z))

See Also

Requirements

Header:  <boost/preprocessor/seq/for_each_product.hpp>

Copyright Housemarque Oy 2002
Copyright Paul Mensonides 2002

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)