23 General utilities library [utilities]

23.3 Compile-time integer sequences [intseq]

23.3.1 In general [intseq.general]

Библиотека предоставляет шаблон класса, который может представлять целочисленную последовательность. При использовании в качестве аргумента для шаблона функции пакет параметров, определяющий последовательность, может быть выведен и использован в расширении пакета. [ Шаблон псевдонима предусмотрен для общего случая целочисленной последовательности типа ; см. также . ]Note: index_­sequence size_­t [tuple.apply]end note

23.3.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); }
    };
}

T должен быть целочисленным типом.

23.3.3 Alias template make_­integer_­sequence [intseq.make]

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

Если N отрицательный, программа неправильно сформирована. Шаблон псевдонима make_­integer_­sequence обозначает специализацию integer_­sequence с N аргументами, не относящимися к типу. Тип make_­integer_­sequence<T, N> обозначает тип integer_­sequence<T, 0, 1, ..., N-1>. [ Note: make_­integer_­sequence<int, 0> обозначает тип ] integer_­sequence<int> end note