This bit of code compiled in C++20 (using gcc 10.1) without using the typename keyword before the dependent type std::vector. Wh
From the reference, from c++20, in contexts where the dependent name is unambiguously a typename, the typename keyword is no longer needed. In particular:
A qualified name that is used as a declaration specifier in the (top-level) decl-specifier-seq of:
a simple declaration or function definition at namespace scope