clang API Documentation

Public Types | Public Member Functions | Public Attributes | Friends
clang::Sema::ActiveTemplateInstantiation Struct Reference

A template instantiation that is currently in progress. More...

#include <Sema.h>

Collaboration diagram for clang::Sema::ActiveTemplateInstantiation:
Collaboration graph
[legend]

List of all members.

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.
NamedDeclTemplate
 The template (or partial specialization) in which we are performing the instantiation, for substitutions of prior template arguments.
DeclEntity
 The entity that is being instantiated.
const TemplateArgumentTemplateArgs
 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::TemplateDeductionInfoDeductionInfo
 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)

Detailed Description

A template instantiation that is currently in progress.

Definition at line 6259 of file Sema.h.


Member Enumeration Documentation

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.

Definition at line 6261 of file Sema.h.


Constructor & Destructor Documentation

Definition at line 6330 of file Sema.h.


Member Function Documentation

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.


Friends And Related Function Documentation

bool operator!= ( const ActiveTemplateInstantiation X,
const ActiveTemplateInstantiation Y 
) [friend]

Definition at line 6366 of file Sema.h.

bool operator== ( const ActiveTemplateInstantiation X,
const ActiveTemplateInstantiation Y 
) [friend]

Definition at line 6338 of file Sema.h.


Member Data Documentation

The template deduction info object associated with the substitution or checking of explicit or deduced template arguments.

Definition at line 6323 of file Sema.h.

The entity that is being instantiated.

Definition at line 6312 of file Sema.h.

The source range that covers the construct that cause the instantiation, e.g., the template-id that causes a class template instantiation.

Definition at line 6328 of file Sema.h.

The number of template arguments in TemplateArgs.

Definition at line 6319 of file Sema.h.

The point of instantiation within the source code.

Definition at line 6304 of file Sema.h.

The template (or partial specialization) in which we are performing the instantiation, for substitutions of prior template arguments.

Definition at line 6309 of file Sema.h.

The list of template arguments we are substituting, if they are not part of the entity.

Definition at line 6316 of file Sema.h.


The documentation for this struct was generated from the following files: