Home | History | Annotate | Download | only in Basic
      1 //===--- TemplateKinds.h - Enum values for C++ Template Kinds ---*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 //  This file defines the TemplateNameKind enum.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 #ifndef LLVM_CLANG_TEMPLATEKINDS_H
     14 #define LLVM_CLANG_TEMPLATEKINDS_H
     15 
     16 namespace clang {
     17 
     18 /// \brief Specifies the kind of template name that an identifier refers to.
     19 enum TemplateNameKind {
     20   /// The name does not refer to a template.
     21   TNK_Non_template = 0,
     22   /// The name refers to a function template or a set of overloaded
     23   /// functions that includes at least one function template.
     24   TNK_Function_template,
     25   /// The name refers to a template whose specialization produces a
     26   /// type. The template itself could be a class template, template
     27   /// template parameter, or C++0x template alias.
     28   TNK_Type_template,
     29   /// The name refers to a dependent template name. Whether the
     30   /// template name is assumed to refer to a type template or a
     31   /// function template depends on the context in which the template
     32   /// name occurs.
     33   TNK_Dependent_template_name
     34 };
     35 
     36 }
     37 #endif
     38 
     39 
     40