https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107296
--- Comment #3 from Tomáš K. <tomaqa at gmail dot com> --- Created attachment 53716 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53716&action=edit minimal example Description: When `-std=c++20` option is used, it requires `typename` in definition of a constructor of a template class that is nested in a nested class. But it is not related to a typename in this case ... I believe this is a consequence of c++20 new rules about treating `typename`. The example works just fine if it is run with `-std=c++17`, with the very same compiler.