|
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