Front Page / Metafunctions / Concepts / Trivial Metafunction

# Trivial Metafunction

### Description

A Trivial Metafunction accepts a single argument of a class type `x` and returns the `x`'s nested type member `x::name`, where `name` is a placeholder token for the actual member's name accessed by a specific metafunction's instance. By convention, all trivial metafunctions in MPL are named after the members they provide assess to. For instance, a Trivial Metafunction named `first` reaches for the `x`'s nested member `::first`.

### Expression requirements

In the following table and subsequent specifications, `name` is placeholder token for the names of the Trivial Metafunction itself and the accessed member, and `x` is a class type such that `x::name` is a valid type-name.

Expression | Type | Complexity
--- | --- | ---
`name<x>::type` | Any type | Constant time.

### Expression semantics

    typedef name<x>::type r;

Precondition: | `x::name` is a valid type-name.
Semantics: | `is_same<r,x::name>::value == true`.

### Models

- first
- second
- base

### See also

Metafunctions, Trivial Metafunctions, identity