struct Sema::CodeSynthesisContext
Declaration
struct Sema::CodeSynthesisContext { /* full declaration omitted */ };
Description
A context in which code is being synthesized (where a source location alone is not sufficient to identify the context). This covers template instantiation and various forms of implicitly-generated functions.
Declared at: clang/include/clang/Sema/Sema.h:8936
Member Variables
- public enum SynthesisKind Kind
- public bool SavedInNonInstantiationSFINAEContext
- Was the enclosing context a non-instantiation SFINAE context?
- public clang::SourceLocation PointOfInstantiation
- The point of instantiation or synthesis within the source code.
- public clang::Decl* Entity
- The entity that is being synthesized.
- public clang::NamedDecl* Template
- The template (or partial specialization) in which we are performing the instantiation, for substitutions of prior template arguments.
- public anonymous struct / union
- public anonymous struct / union
- public sema::TemplateDeductionInfo* DeductionInfo
- The template deduction info object associated with the substitution or checking of explicit or deduced template arguments.
- public clang::SourceRange InstantiationRange
- The source range that covers the construct that cause the instantiation, e.g., the template-id that causes a class template instantiation.
Method Overview
- public CodeSynthesisContext()
- public bool isInstantiationRecord() const
- public ArrayRef<clang::TemplateArgument> template_arguments() const
Methods
¶CodeSynthesisContext()
CodeSynthesisContext()
Declared at: clang/include/clang/Sema/Sema.h:9087
¶bool isInstantiationRecord() const
bool isInstantiationRecord() const
Description
Determines whether this template is an actual instantiation that should be counted toward the maximum instantiation depth.
Declared at: clang/include/clang/Sema/Sema.h:9095
¶ArrayRef<clang::TemplateArgument>
template_arguments() const
ArrayRef<clang::TemplateArgument>
template_arguments() const
Declared at: clang/include/clang/Sema/Sema.h:9073