Metafunction 原操作

Metafunction 原操作

        这是我在看boost MPL时试着翻译的东西,现在贴上来。

A metafunction is a class or a class template that represents a function invocable at compile-time.
一个原操作是在编译器表现了调用操作的一个类或一个模板类。

An non-nullary metafunction is invoked by instantiating the class template with particular template parameters (metafunction arguments);
一个非无参的原操作被一个有详细模板参数的模板类请求;
the result of the metafunction application is accessible through the instantiation's nested type typedef.
原操作应用的返回值是一个通过模板类实例可取的内嵌的类型定义。

All metafunction's arguments must be types (i.e. only type template parameters are allowed).
所有的原操作的参数必须是类型。

A metafunction can have a variable number of parameters.
一个原操作能有一个数量变化的参数

A nullary metafunction is represented as a (template) class with a nested type typename member.
一个无参数原操作被表现为有内嵌重命名类型的类

原操作的三种表达式(f是一个原操作)
1 f::type
2 f<>::type
3 f< a1,..,an >::type


Lambda Expression 构造和分配表达式

A Lambda Expression is a compile-time invocable entity in either of the following two forms:
一个构造和分配表达式是下面两个中的一个编译期调用单元

Metafunction Class
原操作类

Placeholder Expression
站位符表达式

Most of the MPL components accept either of those, and the concept gives us a consice way to describe these requirements.
大部分的MPL组件接收它们其中一个,

你可能感兴趣的:(Metafunction 原操作)