|
clang
3.8.0
|
A template instantiation that is currently in progress. More...
#include <Sema.h>
Public Types | |
| enum | InstantiationKind { TemplateInstantiation, DefaultTemplateArgumentInstantiation, DefaultFunctionArgumentInstantiation, ExplicitTemplateArgumentSubstitution, DeducedTemplateArgumentSubstitution, PriorTemplateArgumentSubstitution, DefaultTemplateArgumentChecking, ExceptionSpecInstantiation } |
| The kind of template instantiation we are performing. More... | |
Public Member Functions | |
| ActiveTemplateInstantiation () | |
| bool | isInstantiationRecord () const |
| Determines whether this template is an actual instantiation that should be counted toward the maximum instantiation depth. More... | |
Public Attributes | |
| enum clang::Sema::ActiveTemplateInstantiation::InstantiationKind | Kind |
| SourceLocation | PointOfInstantiation |
| The point of instantiation within the source code. More... | |
| NamedDecl * | Template |
| The template (or partial specialization) in which we are performing the instantiation, for substitutions of prior template arguments. More... | |
| Decl * | Entity |
| The entity that is being instantiated. More... | |
| const TemplateArgument * | TemplateArgs |
| The list of template arguments we are substituting, if they are not part of the entity. More... | |
| unsigned | NumTemplateArgs |
| The number of template arguments in TemplateArgs. More... | |
| sema::TemplateDeductionInfo * | DeductionInfo |
| The template deduction info object associated with the substitution or checking of explicit or deduced template arguments. More... | |
| SourceRange | InstantiationRange |
| The source range that covers the construct that cause the instantiation, e.g., the template-id that causes a class template instantiation. More... | |
Friends | |
| bool | operator== (const ActiveTemplateInstantiation &X, const ActiveTemplateInstantiation &Y) |
| bool | operator!= (const ActiveTemplateInstantiation &X, const ActiveTemplateInstantiation &Y) |
The kind of template instantiation we are performing.
| Enumerator | |
|---|---|
| TemplateInstantiation |
We are instantiating a template declaration. The entity is the declaration we're instantiating (e.g., a CXXRecordDecl). |
| DefaultTemplateArgumentInstantiation |
We are instantiating a default argument for a template parameter. The Entity is the template, and TemplateArgs/NumTemplateArguments provides the template arguments as specified. FIXME: Use a TemplateArgumentList |
| DefaultFunctionArgumentInstantiation |
We are instantiating a default argument for a function. The Entity is the ParmVarDecl, and TemplateArgs/NumTemplateArgs provides the template arguments as specified. |
| ExplicitTemplateArgumentSubstitution |
We are substituting explicit template arguments provided for a function template. The entity is a FunctionTemplateDecl. |
| DeducedTemplateArgumentSubstitution |
We are substituting template argument determined as part of template argument deduction for either a class template partial specialization or a function template. The Entity is either a ClassTemplatePartialSpecializationDecl or a FunctionTemplateDecl. |
| PriorTemplateArgumentSubstitution |
We are substituting prior template arguments into a new template parameter. The template parameter itself is either a NonTypeTemplateParmDecl or a TemplateTemplateParmDecl. |
| DefaultTemplateArgumentChecking |
We are checking the validity of a default template argument that has been used when naming a template-id. |
| ExceptionSpecInstantiation |
We are instantiating the exception specification for a function template which was deferred until it was needed. |
|
inline |
| bool Sema::ActiveTemplateInstantiation::isInstantiationRecord | ( | ) | const |
Determines whether this template is an actual instantiation that should be counted toward the maximum instantiation depth.
Definition at line 185 of file SemaTemplateInstantiate.cpp.
|
friend |
|
friend |
| sema::TemplateDeductionInfo* clang::Sema::ActiveTemplateInstantiation::DeductionInfo |
| Decl* clang::Sema::ActiveTemplateInstantiation::Entity |
| SourceRange clang::Sema::ActiveTemplateInstantiation::InstantiationRange |
| enum clang::Sema::ActiveTemplateInstantiation::InstantiationKind clang::Sema::ActiveTemplateInstantiation::Kind |
| unsigned clang::Sema::ActiveTemplateInstantiation::NumTemplateArgs |
| SourceLocation clang::Sema::ActiveTemplateInstantiation::PointOfInstantiation |
| NamedDecl* clang::Sema::ActiveTemplateInstantiation::Template |
| const TemplateArgument* clang::Sema::ActiveTemplateInstantiation::TemplateArgs |
1.8.6