Namespaces
Variants

C++ keyword: typename

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

用法

  • 模板声明 的模板参数列表中, typename 可作为 class 的替代关键字,用于声明 类型模板参数 和模板模板参数 (C++17 起)
  • 在模板的声明或定义内部, typename 可用于声明 依赖限定名 为类型。
  • typename 可用于非依赖限定类型名称前,此时该关键字不产生任何作用。
(since C++20)

参见

(自 C++20 起)