Boost logo

Boost Users :

Subject: Re: [Boost-users] [preprocessor] BOOST_PP_VARIADIC_SIZE() and g++ in 1.52
From: Nathan Ridge (zeratul976_at_[hidden])
Date: 2012-12-11 23:16:11


> In fact, when I change the definition of the intercept() macro below to:
>
> #define intercept(FIRST, ARGS...) \
> targetfunc(transform(FIRST) \
> , boost::lexical_cast<std::string>(BOOST_PP_VARIADIC_SIZE(ARGS)))
>
> I see that BOOST_PP_VARIADIC_SIZE() expands to 1 for
> intercept("first") as well as for intercept("first", "second").

As I understand it, it is impossible to reliably detect an empty
argument list in all cases, so BOOST_PP_VARIADIC_SIZE() returns
1 for an empty argument list. Take a look at this thread [1] for
an explanation and a workaround.

Regards,
Nate

[1] http://boost.2283326.n4.nabble.com/Alternative-implementation-for-BOOST-PP-VARIADIC-SIZE-td4029926.html
                                               


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net