Subject: Re: [Boost-bugs] [Boost C++ Libraries] #5857: proto::function undocumented for use in grammars
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-03-21 04:35:15
#5857: proto::function undocumented for use in grammars
-------------------------------+--------------------------------------------
Reporter: johnmaddock | Owner: eric_niebler
Type: Bugs | Status: closed
Milestone: To Be Determined | Component: proto
Version: Boost 1.47.0 | Severity: Problem
Resolution: fixed | Keywords:
-------------------------------+--------------------------------------------
Changes (by eric_niebler):
* status: new => closed
* resolution: => fixed
Comment:
John, the link I gave doesn't specifically talk about
{{{proto::function}}}, but it makes a general point about all of Proto's
operator metafunctions -- of which there are a great many, including
{{{proto::function}}} -- namely, that they can be used in many different
capacities. They can compute new expression type, match those type, and
transform those types. This seems to be one of those things that all new
users of Proto struggle with. It's worth considering whether it indicates
a flaw in Proto's design, a flaw in Proto's docs, or if it's Just One Of
Those Things, like Haskell's monads, that are powerful but inherently hard
to grok.
Joel, I had another look at the docs about creating lazy functions, and
you're right. I overemphasize {{{proto::function}}}'s role by a lot. I
took another crack at it. Have a look [http://boost-
sandbox.sourceforge.net/libs/proto/doc/html/boost_proto/users_guide/front_end/making_lazy_functions.html
here].
Closing this as fixed, but will continue to think about the overloaded
(ab)use of Proto's operator metafunctions for Proto-11.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/5857#comment:5> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:09 UTC