
Paul Mensonides wrote:
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] 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