Difference between revisions of "cpp/keyword/typename"
From cppreference.com
D41D8CD98F (Talk | contribs) (→Usage: ~) |
D41D8CD98F (Talk | contribs) (→Usage: CWG 382) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{cpp/keyword/title|typename}} | + | {{cpp/keyword/title|{{tt|typename}}}} |
{{cpp/keyword/navbar}} | {{cpp/keyword/navbar}} | ||
===Usage=== | ===Usage=== | ||
+ | * In the template parameter list of a [[cpp/language/templates|template declaration]], {{c|typename}} can be used as an alternative to {{lt|cpp/keyword/class}} to declare {{lsd|cpp/language/template parameters#Type template parameter}}s{{rev inl|since=c++17| and template template parameters}}. | ||
+ | * Inside a declaration or a definition of a template, {{c|typename}} can be used to declare that a [[cpp/language/dependent name|dependent qualified name]] is a type. | ||
+ | * {{c|typename}} can be used before a non-dependent qualified type name. It has no effect in this case. | ||
+ | {{rrev|since=c++20| | ||
+ | * Inside a [[cpp/language/constraints|requirements]] for type requirements | ||
+ | }} | ||
− | * | + | ===See also=== |
− | * | + | * {{rlpt|class}} |
− | + | * {{rlpt|template}} | |
− | + | {{rrev|since=c++20| | |
+ | * {{rlpt|concept}}, {{rlpt|requires}} | ||
+ | }} | ||
{{langlinks|de|es|fr|it|ja|pt|ru|zh}} | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 04:44, 14 August 2024
[edit] 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.
|
(since C++20) |
[edit] See also
(since C++20) |