clang API Documentation
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