source:
downloads/boost_1_33_1/libs/mpl/doc/src/refmanual/MetafunctionClass.rst
@
12
Last change on this file since 12 was 12, checked in by landauf, 18 years ago | |
---|---|
File size: 2.5 KB |
Metafunction Class
Summary
A metafunction class is a certain form of metafunction representation that enables higher-order metaprogramming. More precisely, it's a class with a publicly-accessible nested |metafunction| called apply. Correspondingly, a metafunction class invocation is defined as invocation of its nested apply metafunction.
Expression requirements
|In the following table...| f is a |Metafunction Class|.
Expression | Type | Complexity |
---|---|---|
f::apply::type | Any type | Unspecified. |
f::apply<>::type | Any type | Unspecified. |
f::apply<a1,...an>::type | Any type | Unspecified. |
Expression semantics
typedef f::apply::type x;
Precondition: | f is a nullary |Metafunction Class|; f::apply::type is a type-name. |
---|---|
Semantics: | x is the result of the metafunction class invocation. |
typedef f::apply<>::type x;
Precondition: | f is a nullary |Metafunction Class|; f::apply<>::type is a type-name. |
---|---|
Semantics: | x is the result of the metafunction class invocation. |
typedef f::apply<a1,|...|an>::type x;
Precondition: | f is an n-ary metafunction class; apply is a |Metafunction|. |
---|---|
Semantics: | x is the result of the metafunction class invocation with the actual arguments |a1...an|. |
Note: See TracBrowser
for help on using the repository browser.