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.