C++ keyword: typename - cppreference.com

From cppreference.com

Usage

In the template parameter list of a

template declaration

, typename can 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, typename can be used to declare that a

dependent qualified name

is a type.

typename can be used before a non-dependent qualified type name. It has no effect in this case.

See also

class

template