Boost logo

Boost :

From: JOAQUIN LOPEZ MU?Z (joaquin_at_[hidden])
Date: 2006-07-24 13:54:23


----- Mensaje original -----
De: David Bergman <David.Bergman_at_[hidden]>
Fecha: Lunes, Julio 24, 2006 7:33 pm
Asunto: [boost] [mpl] Metafunction terminology - revival?

> Ok, I don't know what happened to the old discussion about
> naming of stuff that can be safely applied by mpl::apply.
>
> We have the following constructs:
>
> 1. "metafunctions," which are templates classes with a type
> identifier called 'type',
>
> 2. "metafunction classes," which are classes with a nested
> template class called 'apply', which is a "metafunction" in
> its own right, and
>
> 3. "lambda expression."
>
> Two of them - #2 and #3 - share a quite important trait: they can
> be passed as the first argument to mpl::apply.
>
> I suggest that we call anything applicable via mpl::apply a
> "metafunctor."And have "metafunctoid" denote that category
> extended with #1 - ordinary
> metafunctions - above.
>
> It is a bit boring not to be able to use a common name for these
> constructs,especially when trying to tech others about
> metaprogramming techniques in C++. And I do not see such common
> names in the MPL documentation (or book.)
>

Hello David,

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? (I've got the hunch
I am, actually.)

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


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