Boost logo

Boost Users :

Subject: Re: [Boost-users] Metaprogramming Question
From: John M. Dlugosz (mpbecey7gu_at_[hidden])
Date: 2012-02-11 02:23:04


On 2/10/2012 7:35 AM, Nat Linden wrote:
> On Thu, Feb 9, 2012 at 11:05 PM, John M. Dlugosz<mpbecey7gu_at_[hidden]> wrote:
>
>> On 2/9/2012 1:49 PM, Nat Linden wrote:
>
>>> template<typename FUNCTOR>
>>> void ourmacro_f(const FUNCTOR& f)
>>> {
>>> f(hidden_ostream_object);
>>> }
>>>
>>> #define OURMACRO(EXPRESSION) (ourmacro_f(boost::lambda::_1<<
>>> EXPRESSION))
>
>> How is that different from just using:
>>
>> #define OURMACRO(EXPRESSION) hidden_stream_object<< EXPRESSION
>
> Simply that hidden_stream_object really isn't visible in the calling
> context. It's local to the context of ourmacro_f().

Sorry, I'm still not seeing the point. The name hidden_stream_object is not in scope here
but ourmacro_f is instead? So what?

Or, a plain function to return the stream object?

        ostream& get_stream() { return hidden_stream_object; }

        #define OURMACRO(EXPRESSION) get_stream()<< EXPRESSION


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