aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/TemplateKinds.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Basic/TemplateKinds.h')
-rw-r--r--include/clang/Basic/TemplateKinds.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/clang/Basic/TemplateKinds.h b/include/clang/Basic/TemplateKinds.h
new file mode 100644
index 0000000000..dbaf5bdb60
--- /dev/null
+++ b/include/clang/Basic/TemplateKinds.h
@@ -0,0 +1,37 @@
+//===--- TemplateKinds.h - Enum values for C++ Template Kinds ---*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the TemplateNameKind enum.
+//
+//===----------------------------------------------------------------------===//
+#ifndef LLVM_CLANG_TEMPLATEKINDS_H
+#define LLVM_CLANG_TEMPLATEKINDS_H
+
+namespace clang {
+
+/// \brief Specifies the kind of template name that an identifier refers to.
+enum TemplateNameKind {
+ /// The name does not refer to a template.
+ TNK_Non_template = 0,
+ /// The name refers to a function template or a set of overloaded
+ /// functions that includes at least one function template.
+ TNK_Function_template,
+ /// The name refers to a class template.
+ TNK_Class_template,
+ /// The name referes to a template template parameter.
+ TNK_Template_template_parm,
+ /// The name is dependent and is known to be a template name based
+ /// on syntax, e.g., "Alloc::template rebind<Other>".
+ TNK_Dependent_template_name
+};
+
+}
+#endif
+
+