Boost logo

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