clang API Documentation

TemplateKinds.h
Go to the documentation of this file.
00001 //===--- TemplateKinds.h - Enum values for C++ Template Kinds ---*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 //  This file defines the TemplateNameKind enum.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 #ifndef LLVM_CLANG_TEMPLATEKINDS_H
00014 #define LLVM_CLANG_TEMPLATEKINDS_H
00015 
00016 namespace clang {
00017 
00018 /// \brief Specifies the kind of template name that an identifier refers to.
00019 enum TemplateNameKind {
00020   /// The name does not refer to a template.
00021   TNK_Non_template = 0,
00022   /// The name refers to a function template or a set of overloaded
00023   /// functions that includes at least one function template.
00024   TNK_Function_template,
00025   /// The name refers to a template whose specialization produces a
00026   /// type. The template itself could be a class template, template
00027   /// template parameter, or C++0x template alias.
00028   TNK_Type_template,
00029   /// The name refers to a dependent template name. Whether the
00030   /// template name is assumed to refer to a type template or a
00031   /// function template depends on the context in which the template
00032   /// name occurs.
00033   TNK_Dependent_template_name
00034 };
00035 
00036 }
00037 #endif
00038 
00039