[intseq] # 21 Metaprogramming library [[meta]](./#meta) ## 21.2 Compile-time integer sequences [intseq] ### [21.2.1](#general) General [[intseq.general]](intseq.general) [1](#general-1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/meta.tex#L21) The library provides a class template that can represent an integer sequence[.](#general-1.sentence-1) When used as an argument to a function template the template parameter pack defining the sequence can be deduced and used in a pack expansion[.](#general-1.sentence-2) [*Note [1](#general-note-1)*: The index_sequence alias template is provided for the common case of an integer sequence of type size_t; see also [[tuple.apply]](tuple.apply "22.4.6 Calling a function with a tuple of arguments")[.](#general-1.sentence-3) — *end note*] ### [21.2.2](#intseq) Class template integer_sequence [[intseq.intseq]](intseq.intseq) [🔗](#lib:integer_sequence) namespace std {template struct integer_sequence {using value_type = T; static constexpr size_t size() noexcept { return sizeof...(I); }};} [1](#intseq-1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/meta.tex#L43) *Mandates*: T is an integer type[.](#intseq-1.sentence-1) ### [21.2.3](#make) Alias template make_integer_sequence [[intseq.make]](intseq.make) [🔗](#lib:make_integer_sequence) `template using make_integer_sequence = integer_sequence; ` [1](#make-1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/meta.tex#L56) *Mandates*: N ≥ 0[.](#make-1.sentence-1) [2](#make-2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/meta.tex#L60) The alias templatemake_integer_sequence denotes a specialization ofinteger_sequence with N constant template arguments[.](#make-2.sentence-1) The type make_integer_sequence is an alias for the typeinteger_sequence[.](#make-2.sentence-2) [*Note [1](#make-note-1)*: make_integer_sequence is an alias for the typeinteger_sequence[.](#make-2.sentence-3) — *end note*]