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.