enum TemplateNameKind
Description
Specifies the kind of template name that an identifier refers to. Be careful when changing this: this enumeration is used in diagnostics.
Declared at: clang/include/clang/Basic/TemplateKinds.h:20
Enumerators
Name | Value | Comment |
---|---|---|
TNK_Non_template | 0 | The name does not refer to a template. |
TNK_Function_template | 1 | The name refers to a function template or a set of overloaded functions that includes at least one function template, or (in C++20) refers to a set of non-template functions but is followed by a ' < '. |
TNK_Type_template | 2 | The name refers to a template whose specialization produces a type. The template itself could be a class template, template template parameter, or template alias. |
TNK_Var_template | 3 | The name refers to a variable template whose specialization produces a variable. |
TNK_Dependent_template_name | 4 | The name refers to a dependent template name:Here, "apply" is a dependent template name within the typename specifier in the typedef. "apply" is a nested template, and whether the template name is assumed to refer to a type template or a function template depends on the context in which the template name occurs. |
TNK_Undeclared_template | 5 | Lookup for the name failed, but we're assuming it was a template name anyway. In C++20, this is mandatory in order to parse ADL-only function template specialization calls. |
TNK_Concept_template | 6 | The name refers to a concept. |