I'm having a problem with the preprocessor and currently I'm stuck. I
tried to reduce the problem from my program as far as possible.
Why does this example compile with an error?:
#include
#include
#include
#define SEQ (b)(o)(o)(s)(t)
#define i 0
int main( int argc, char* argv[]){
BOOST_PP_IF(i,BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, i)),0);
return 0;
}
The error is the following:
./test.cxx:23:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2
arguments, but only 1 given
I'm using gcc 4.3.1 under Linux.
As the condition is 0, the preprocessor shouldn't expand
BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, i)).
The preprocessed file (g++ -P -E) has expands to 0; but the preprocessor
still throws an error.
Could also someone give me a hint how to debug efficiently such a
problem, as I'm a newbie to boost.
---
Reimund