$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [wave] preprocessor directives in output
From: pmenso57_at_[hidden]
Date: 2014-01-21 02:27:58
Provided the code was only in an #if block used for pre-generation (or the code is *only* used for pre-gen), you could have wave produce that. E.g. use an object-like macro to get a non-macro-operator hash mark: 
#if PREGENERATING_HEADERS 
#define HASH # 
HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) 
vector(vector&& rhs) 
: vec(std::forward<vector_n>(rhs.vec)) {} 
HASH endif 
#endif 
----- Original Message -----
From: "Thomas Heller" <thom.heller_at_[hidden]> 
To: boost_at_[hidden] 
Sent: Monday, January 20, 2014 11:38:20 PM 
Subject: Re: [boost] [wave] preprocessor directives in output 
On 01/21/2014 08:17 AM, Fletcher, John P wrote: 
> 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. 
the problem is that pp macros can't be expanded to pp directives. 
> 
> 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 
> http://www.ciere.com 
> http://boost-spirit.com 
> http://www.cycfi.com/ 
> 
> _______________________________________________ 
> Unsubscribe & other changes: http://listarchives.boost.org/mailman/listinfo.cgi/boost 
> 
> 
> 
> _______________________________________________ 
> Unsubscribe & other changes: http://listarchives.boost.org/mailman/listinfo.cgi/boost 
> 
_______________________________________________ 
Unsubscribe & other changes: http://listarchives.boost.org/mailman/listinfo.cgi/boost