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

NameValueComment
TNK_Non_template0The name does not refer to a template.
TNK_Function_template1The 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_template2The 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_template3The name refers to a variable template whose specialization produces a variable.
TNK_Dependent_template_name4The 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_template5Lookup 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_template6The name refers to a concept.