|
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