Files
2025-10-25 03:02:53 +03:00

2.2 KiB

[intseq]

21 Metaprogramming library [meta]

21.2 Compile-time integer sequences [intseq]

21.2.1 General [intseq.general]

1

#

The library provides a class template that can represent an integer sequence.

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.

[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].

— end note]

21.2.2 Class template integer_sequence [intseq.intseq]

🔗

namespace std {template<class T, T... I> struct integer_sequence {using value_type = T; static constexpr size_t size() noexcept { return sizeof...(I); }};}

1

#

Mandates: T is an integer type.

21.2.3 Alias template make_integer_sequence [intseq.make]

🔗

template<class T, T N> using make_integer_sequence = integer_sequence<T, see below>;

1

#

Mandates: N ≥ 0.

2

#

The alias templatemake_integer_sequence denotes a specialization ofinteger_sequence with N constant template arguments.

The type make_integer_sequence<T, N> is an alias for the typeinteger_sequence<T, 0, 1, …, N - 1>.

[Note 1:

make_integer_sequence<int, 0> is an alias for the typeinteger_sequence.

— end note]