Boost logo

Boost :

Subject: Re: [boost] Preprocessor directive for a sequence that differs only in datatype
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2017-07-11 08:01:30


On 11/07/2017 19:22, Rishabh Arora wrote:
> I was trying to use the boost.preprocessor to write some code which
> otherwise needs to be written for all the cases.
> Here's the code:
> https://github.com/BoostGSoC17/dataframe/blob/master/include/df.cpp
> (line no. 430 and 431).
> But on compilation it gives the error:
> error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given
> print_column <BOOST_PP_SEQ_ELEM(type, INNER_TYPE) >(i);
>
> I didn't understand the reason as when I wrote: print_column
> <BOOST_PP_SEQ_ELEM(any_numerical_value(0, 1, ...), INNER_TYPE) >(i); it
> works fine.
> Can anyone help me understand the error or provide an alternative way to
> do the same thing?

BOOST_PP_SEQ_ELEM's first parameter must be an expression resolvable at
preprocessing time (usually a constant).

"type" doesn't exist until runtime.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk