3rdParty/boost/1.78.0/libs/mpl/doc/refmanual/metafunction-class.html
| Prev Next | Back Along | Up Home | Full TOC | Front Page / Metafunctions / Concepts / Metafunction Class |
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.
In the following table and subsequent specifications, 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. |
typedef f::[apply](./apply.html)::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](./apply.html)<>::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](./apply.html)<a1,_..._a_n_>::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. |
Metafunctions, Metafunction, Lambda Expression, invocation, apply_wrap, bind, quote
| Prev Next | Back Along | Up Home | Full TOC |
Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |