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

Methods

CodeSynthesisContext()

Declared at: clang/include/clang/Sema/Sema.h:9087

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

Declared at: clang/include/clang/Sema/Sema.h:9073