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.)
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? (I've got the hunch
I am, actually.)
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo