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:

>> >

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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk