
"David Bergman" <David.Bergman@bergmangupta.com> writes:
Aleksey Gurtovoy wrote:
Joaquín López Muñoz writes:
Please correct if I'm wrong, but I'd say the official
definition for a
MPL lambda expression:
http://boost.org/libs/mpl/doc/refmanual/lambda-expression.html
actually encompasses both metafunction classes and placeholder
expressions ("proper" lambda expressions, if you wish), so "lambda
expression" is the common name you're after. Am I missing something?
Nope, you are 100% correct.
Ok, so
struct Map { template<typename T> struct apply { typedef int type;
}; };
is a "lambda expression" then?
No but, Map is a lambda expression.
A bit weird in my book, but if that is the
official nomenclature for MPL, I will use it...
By the way, Aleksey, what do you think of calling anything applicable via
mpl::apply a "metafunctor"?
That's exactly a "lambda expression;" there's no need for a new term. The documentation for apply which says "Invokes a Metafunction Class or a Lambda Expression F with arguments A1,... An." is just redundant and should probably be fixed. -- Dave Abrahams Boost Consulting www.boost-consulting.com