clang API Documentation
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. | |
Public Attributes | |
| enum clang::Sema::ActiveTemplateInstantiation::InstantiationKind | Kind |
| SourceLocation | PointOfInstantiation |
| The point of instantiation within the source code. | |
| NamedDecl * | Template |
| The template (or partial specialization) in which we are performing the instantiation, for substitutions of prior template arguments. | |
| Decl * | Entity |
| The entity that is being instantiated. | |
| const TemplateArgument * | TemplateArgs |
| The list of template arguments we are substituting, if they are not part of the entity. | |
| unsigned | NumTemplateArgs |
| The number of template arguments in TemplateArgs. | |
| sema::TemplateDeductionInfo * | DeductionInfo |
| The template deduction info object associated with the substitution or checking of explicit or deduced template arguments. | |
| SourceRange | InstantiationRange |
| The source range that covers the construct that cause the instantiation, e.g., the template-id that causes a class template instantiation. | |
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.
| 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. |
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.
| bool operator!= | ( | const ActiveTemplateInstantiation & | X, |
| const ActiveTemplateInstantiation & | Y | ||
| ) | [friend] |
| bool operator== | ( | const ActiveTemplateInstantiation & | X, |
| const ActiveTemplateInstantiation & | Y | ||
| ) | [friend] |
| enum clang::Sema::ActiveTemplateInstantiation::InstantiationKind clang::Sema::ActiveTemplateInstantiation::Kind |