|
Boost : |
Subject: Re: [boost] Call for interest - BOOST_AUTO_FUNCTION
From: David Abrahams (dave_at_[hidden])
Date: 2010-10-17 05:32:07
At Fri, 15 Oct 2010 19:22:16 -0400,
Matt Calabrese wrote:
>
> To see how the macro is used go here: http://codepaste.net/4u34ma
Nice!! Now are you ready to write BOOST_PARAMETER_AUTO_FUNCTION? :-)
> <http://codepaste.net/4u34ma>As of right now variadic macros are required,
> however, I could easily make them optional if I always require users to put
> more parenthesis in particular places (I.E. surrounding the code in a
> "requires" regardless of whether or not there is a comma there), though I'm
> not certain that I wish to go this route as, as far as I'm aware, all
> compilers that support trailing return type also support variadic
> macros.
Yeah, and C99 preprocessor is required for C++0x, so I wouldn't bother.
> So, implementing it without variadic macros may just be forcing programmers
> to use lisp-level amounts of parentheses for no reason.
Yep.
> I was hoping to have everything documented and up by now, but I'm still
> fleshing things out. At this time I'm working on some tricks to make misuse
> reported in an easy-to-read manner through some fancy preprocessor tricks
> and static_assert/mpl assert message. After that I believe it should be
> done.
This is very cool.
Questions
* The "keywords" are getting a bit long. Could you think of shorter
names? Super bonus for finding a way to make them highlight
distinctively ;-)
* is it possible to make all return types lazily computed, so there's
no need for lazy_result_type? I'm not saying I see how to do this,
but you might :-)
* What is (end) and where is it needed?
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk