|
Boost : |
From: Edward Bishop (dicatna2003_at_[hidden])
Date: 2005-03-02 02:21:40
Hi All,
When I run the following code through the preprocessor, it emits the
correct output:
alpha is simple;
beta is simple;
gamma is complex and color is red;
delta is simple;
epsilon is complex ;
but it also emits the folowing warning (several times):
macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given
My question is, how can I eliminate the warning. Thanks in advance
for any comments/advice.
# include <boost/preprocessor/library.hpp>
#define IS_SIMPLE(t) BOOST_PP_NOT_EQUAL(3, BOOST_PP_SEQ_SIZE(t))
#define PROPERTIES(t) BOOST_PP_SEQ_ELEM(2,t)
#define HAS_COLOR(t) BOOST_PP_EQUAL(2, BOOST_PP_SEQ_ELEM(0, \
PROPERTIES(t)))
#define COLOR(t) BOOST_PP_SEQ_ELEM(1, PROPERTIES(t))
#define FSIMPLE(a, s, i, t) \
BOOST_PP_SEQ_ELEM(0,t) is simple;
#define FCOMPLEX(a, s, i, t) \
BOOST_PP_SEQ_ELEM(0,t) is complex \
BOOST_PP_IF(HAS_COLOR(t), and color is COLOR(t) , );
#define FCHOICE(a, s, i, t) \
BOOST_PP_IF(IS_SIMPLE(t), \
FSIMPLE(a, s, i, t), \
FCOMPLEX(a, s, i, t))
#define T(s)\
BOOST_PP_SEQ_FOR_EACH_I(FCHOICE, s, s) \
T (
// ID Frequency Properties
( (alpha) (16) )
( (beta) (3) )
( (gamma) (13) ((2) (red)) )
( (delta) (5) )
( (epsilon) (13) ((4) (heavy)) )
)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk