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]

Reply via email to