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

            Bug ID: 82212
           Summary: libstdc++ makes (integer|index)_sequence available
                    with -std=c++11, but they're C++14 features
           Product: gcc
           Version: unknown
               URL: https://bugzilla.gnome.org/show_bug.cgi?id=787648
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: db0451 at gmail dot com
  Target Milestone: ---

https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/utility#L298

std::integer_sequence and std::index_sequence are defined under this condition:

#if __cplusplus > 201103L

However, these features debuted in the C++14 Standard, not in C++11.

The symbols therefore should not be available in -std=c++11 mode. When users,
for example, don't realise they only debuted in C++14, use them in -std=c++11
mode, and later compile that code using clang/libc++ in the same mode - they
suddenly get compile errors and realise their project unwittingly started
requiring C++14.

See the URL for a downstream example of this causing a problem.

Reply via email to