Difference between revisions of "cpp/keyword/typename"
From cppreference.com
m (Text replace - "{{example cpp" to "{{example") |
D41D8CD98F (Talk | contribs) (→Usage: CWG 382) |
||
(27 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
− | {{cpp/keyword/title|typename}} | + | {{cpp/keyword/title|{{tt|typename}}}} |
− | {{cpp/keyword/ | + | {{cpp/keyword/navbar}} |
+ | |||
===Usage=== | ===Usage=== | ||
− | *In a [[cpp/language/ | + | * 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 | + | * 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}} |
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) |