https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97624
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
C++20 produces:
$ xg++ -c 97624.C -Wall -W -pedantic -std=c++20
97624.C: In function ‘void bar(Tagged&& ...)’:
97624.C:10:9: warning: ISO C++ does not allow C99 designated initializers
[-Wpedantic]
10 | [Tagged::tag] = tagged.value ...
| ^
97624.C:10:38: error: ‘...’ not allowed in designated initializer list
[-Wtemplate-body]
10 | [Tagged::tag] = tagged.value ...
| ^~~
97624.C: In instantiation of ‘void bar(Tagged&& ...) [with Tagged = {Tag<0,
const char*>}]’:
97624.C:17:5: required from here
17 | bar(O{"ICE"});
| ~~~^~~~~~~~~~
97624.C:10:18: error: incomplete type ‘Tagged’ used in nested name specifier
10 | [Tagged::tag] = tagged.value ...
| ^~~
97624.C:9:21: error: name used in a GNU-style designated initializer for an
array
9 | const char* v[sizeof...(Tagged)] = {
| ^
97624.C:9:21: warning: unused variable ‘v’ [-Wunused-variable]