Boost logo

Boost :

Subject: Re: [boost] [wave] preprocessor directives in output
From: Joel de Guzman (djowel_at_[hidden])
Date: 2014-01-21 01:29:54

On 1/21/14, 9:46 AM, Eric Niebler wrote:
> I'm looking at automating the regeneration of Fusion's preprocess
> headers with the wave tool. Currently, it's impossible because of stuff
> like this (from container\vector\vector.hpp):
> vector(vector&& rhs)
> : vec(std::forward<vector_n>(rhs.vec)) {}
> #endif
> When the wave driver is run, either BOOST_NO_CXX11_RVALUE_REFERENCES is
> defined, in which case the block of code gets left out, or else it
> isn't, in which case the block of code is left in. Both are wrong. What
> should happen is that the #if and #else directives should be present in
> wave's output.
> I can keep wave from expanding certain named macros with the -N switch,
> but there doesn't seem to be a way to selectively keep wave from
> evaluating #if/#else directives. Or is there?

I asked Hartmut this same question before. IIRC, it's an issue that has no
workaround (or fix) yet. I hope I am wrong.


Joel de Guzman

Boost list run by bdawes at, gregod at, cpdaniel at, john at