C++ keyword: typename
From cppreference.com
Usage
- In the template parameter list of a template declaration,
typenamecan be used as an alternative to class to declare type template parameters and template template parameters(since C++17). - Inside a declaration or a definition of a template,
typenamecan be used to declare that a dependent qualified name is a type. typenamecan be used before a non-dependent qualified type name. It has no effect in this case.