2010/5/31 Manfred Doudar <manfred.doudar@rsise.anu.edu.au>
Hello,
I find I am still far from a solution to this, and hope someone might
kindly chime in. At the _bottom_ of this email is what I've got so far,
though falls short of a solution... help is still sorely needed.
#include <boost/preprocessor.hpp>
#define VAR(z, n, k) \
bar<BOOST_PP_ENUM_PARAMS(k, T)>(a[n]);
#define FUN(n) \
void foo(BOOST_PP_ENUM_PARAMS(n, T)) \
{ \
BOOST_PP_REPEAT(n, VAR, n) \
}
#define BOOST_PP_LOCAL_MACRO(n) FUN(n)
#define BOOST_PP_LOCAL_LIMITS (1, 3)
#include BOOST_PP_LOCAL_ITERATE()
By the way, you don't have to undef BOOST_PP_LOCAL_MACRO and BOOST_PP_LOCAL_LIMITS. They are undef-ed in BOOST_PP_LOCAL_ITERATE.
Roman Perepelitsa.