Boost logo

Boost :

Subject: Re: [boost] [wave] preprocessor directives in output
From: Fletcher, John P (j.p.fletcher_at_[hidden])
Date: 2014-01-21 02:17:07

How about making macros for #if, #else, #endif BOOST_KEEP_UNTIL_WAVE_OUTPUT(if) -> #if Then tell Wave not to translate it and translate it in the output. John ________________________________________ From: Boost [boost-bounces_at_[hidden]] on behalf of Joel de Guzman [djowel_at_[hidden]] Sent: 21 January 2014 06:29 To: boost_at_[hidden] Subject: Re: [boost] [wave] preprocessor directives in output 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): > > #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) > 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. Regards, -- Joel de Guzman _______________________________________________ Unsubscribe & other changes:

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