Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-07-25 10:59:59

"David Bergman" <David.Bergman_at_[hidden]> 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:

>> >

>> >

>> >

>> > 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,


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

Boost list run by bdawes at, gregod at, cpdaniel at, john at