https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80396

            Bug ID: 80396
           Summary: New builtin to make std::make_integer_sequence
                    efficient and scalable
           Product: gcc
           Version: 7.0.1
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

Clang has a builtin used for implementing std::make_integer_sequence, so it
scales to much larger sequences than libstdc++'s pure C++ implementation.

The builtin seems to be undocumented, but behaves as though it is an alias
template of the form:

template<template<typename U, U...> class IntSeq, typename T, T N>
  using __make_integer_seq = IntSeq<T, T(0), T(1), ..., T(N-1)>;

i.e. it instantiates IntSeq with arguments T and zero or more values of type T,
with monotonically increasing values from 0 to N-1.

Presumably T must be an integral type.

This would help libstdc++, and should avoid problems like PR 80387.

Reply via email to