The review of the Egg library by Shunsuke Sogame starts today.The library is concerned with the implementation and adaptation of function objects. As function objects are everywhere in Boost and C++, I hope to see plenty of discussion and votes during the review.
Introduction:
It is not so easy to define Function Objects
especially if you want to support Boost.ResultOf and Boost.Lambda.
Therefore, as Boost provides iterator_facade and iterator adaptors,
Egg provides function_facade and function adaptors.
Egg provides the following features:
* Workaround for the Forwarding Problem
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm
* Helpers to build Function Objects:
* egg::function and egg::function_facade provides the way to
build Function Objects which supports Boost.ResultOf and Lambda.
* Function Objects Adaptors(in other words, higher-order functions):
* egg::curryN supports the currying.
* egg::pipable emulates extension methods(C#).
* egg::fuse/unfuse emulates variadic functions.
* egg::nestN represents nested lambda expressions.
* etc...
The documentation is on line:
http://p-stade.sourceforge.net/boost/libs/egg/
The zipped source code is in Vault/FunctionObjects:
http://tinyurl.com/34lgda
Tested under:
Boost Development Trunk and Boost Version1.34.1.
---------------------------------------------------
Please always state in your review, whether you think the library should be
accepted as a Boost library!
Additionally please consider giving feedback on the following general
topics:
- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any
problems?
- How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?
- Are you knowledgeable about the problem domain?
Thanks
Dan Marsden
Review Manager
___________________________________________________________
Yahoo! For Good helps you make a difference
http://uk.promotions.yahoo.com/forgood/