Boost logo

Boost :

From: David Bergman (David.Bergman_at_[hidden])
Date: 2006-07-24 13:33:32


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

/David


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