Boost logo

Boost :

From: Alexander Nasonov (alnsn_at_[hidden])
Date: 2004-11-15 16:09:20


Paul Mensonides wrote:
> > -----Original Message-----
> > From: boost-bounces_at_[hidden]
> > [mailto:boost-bounces_at_[hidden]] On Behalf Of Alexander Nasonov
>
> > > That might not be the case here, but there is no real
> > reason to add such a guarantee.
> >
> > No problem, I can copy/paste/rename required parts of pp :)
>
> Doing so just propagates a bad design (which is what it appears to be). What
> exactly are you doing that requires this behavior, because I guarantee there is
> a better, more structured, way to do it that doesn't involve ill-formed
> constructs or invalid sequences.

Paul,
I understand your worry and I'm not going to use pp seq interface to
extract arguments tuple, I'm just trying to understand whether it's
possible to:

1. extract x from (x)(a,b,c)
2. remove (x) from (x)(a,b,c)

I don't think my design is really bad, if, after all, it can be expressed
in valid C++. Compare:

    BOOST_TRACE_MEM_FUN( (foo)((buf)(len)) );
    BOOST_TRACE_MEM_FUN( (foo)(2, (buf,len)) );
    // These two are only for pp funs ;-)

    BOOST_TRACE_MEM_FUN( foo, (buf, len) );
    // Comma is unnatural and looks like a typo

    BOOST_TRACE_MEM_FUN( (foo)(buf, len) );
    // Valid C++ call syntax. Brackets around foo can be explained in
    // docs.

-- 
Alexander Nasonov

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk