$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jason Hise (chaos_at_[hidden])
Date: 2005-09-14 00:42:27
Background: I am using a few functions which have the following form:
void create ( );
template < typename P1 >
void create ( P1 p1 );
template < typename P1, typename P2 >
void create ( P1 p1, P2 p2 );
[...]
I am trying to generate these using the boost preprocessor library, but
I am getting an error. This is probably because I do not fully
understand how the order of expansion of function-like macros works.
The error is:
warning C4002: too many actual parameters for macro 'BOOST_PP_IIF_1'
My code is as follows:
#define BOOST_PP_LOCAL_LIMITS (0,
BOOST_SINGLETON_PTR_MAX_CONSTRUCTOR_PARAMS)
#define BOOST_PP_LOCAL_MACRO(n) \
BOOST_PP_IF(n, template < BOOST_PP_ENUM_PARAMS(n, typename P) >, \
BOOST_PP_EMPTY()) void create ( BOOST_PP_ENUM_BINARY_PARAMS(n, \
typename ::boost::call_traits < P, >::param_type p ) ) \
{ \
policy_ptr->get_creator ( )->create \
( BOOST_PP_ENUM_PARAMS(n, p) ); \
}
#include BOOST_PP_LOCAL_ITERATE()
What am I doing wrong?
-Jason