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

            Bug ID: 94890
           Summary: std::tuple<aggregate>({0}) fails to compile with
                    -std=c++2a
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ppalka at gcc dot gnu.org
  Target Milestone: ---

$ cat testcase.C
#include <tuple>

struct c { int i; };

std::tuple<c> x({0});

$ g++-10 -std=c++17 testcase.C
$ g++-10 -std=c++2a testcase.C
testcase.C:5:20: error: converting to ‘std::tuple<c>’ from initializer list
would use explicit constructor ‘constexpr
std::tuple<_Elements>::tuple(_UElements&& ...) [with _UElements = {int}; bool
_Valid = true; typename
std::enable_if<std::tuple<_Elements>::_TCC<_Valid>::__is_explicitly_constructible<_UElements
...>(), bool>::type <anonymous> = false; _Elements = {c}]’
    5 | std::tuple<c> x({0});
      |                    ^


PR94885 may be related, but its testcase wasn't reduced from this testcase.

Reply via email to