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 /// \file
     11 /// \brief Defines the clang::TemplateNameKind enum.
     12 ///
     13 //===----------------------------------------------------------------------===//
     14 #ifndef LLVM_CLANG_TEMPLATEKINDS_H
     15 #define LLVM_CLANG_TEMPLATEKINDS_H
     16 
     17 namespace clang {
     18 
     19 /// \brief Specifies the kind of template name that an identifier refers to.
     20 enum TemplateNameKind {
     21   /// The name does not refer to a template.
     22   TNK_Non_template = 0,
     23   /// The name refers to a function template or a set of overloaded
     24   /// functions that includes at least one function template.
     25   TNK_Function_template,
     26   /// The name refers to a template whose specialization produces a
     27   /// type. The template itself could be a class template, template
     28   /// template parameter, or C++0x template alias.
     29   TNK_Type_template,
     30   /// The name refers to a dependent template name. Whether the
     31   /// template name is assumed to refer to a type template or a
     32   /// function template depends on the context in which the template
     33   /// name occurs.
     34   TNK_Dependent_template_name
     35 };
     36 
     37 }
     38 #endif
     39 
     40 
     41