[meta.trans.general]

# 21 Metaprogramming library [[meta]](./#meta)

## 21.3 Metaprogramming and type traits [[type.traits]](type.traits#meta.trans.general)

### 21.3.9 Transformations between types [[meta.trans]](meta.trans#general)

#### 21.3.9.1 General [meta.trans.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/meta.tex#L1966)

Subclause [[meta.trans]](meta.trans "21.3.9 Transformations between types") contains templates that may be used to transform one
type to another following some predefined rule[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/meta.tex#L1970)

Each of the templates in [[meta.trans]](meta.trans "21.3.9 Transformations between types") shall be a[*Cpp17TransformationTrait*](meta.rqmts#:Cpp17TransformationTrait "21.3.2 Requirements [meta.rqmts]") ([[meta.rqmts]](meta.rqmts "21.3.2 Requirements"))[.](#2.sentence-1)
