clang: lib/Sema/SemaTemplateInstantiate.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace TemplateInstArgsHelpers
namespace clang
The JSON file list parser is used to communicate input to InstallAPI.
namespace clang::sema
Functions
static std::string convertCallArgsToString (Sema &S, llvm::ArrayRef< const Expr * > Args)
static TemplateArgument getPackSubstitutedTemplateArgument (Sema &S, TemplateArgument Arg)
static concepts::Requirement::SubstitutionDiagnostic * createSubstDiag (Sema &S, TemplateDeductionInfo &Info, Sema::EntityPrinter Printer)
static bool NeedsInstantiationAsFunctionType (TypeSourceInfo *T)
Attr * clang::sema::instantiateTemplateAttribute (const Attr *At, ASTContext &C, Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs)
Attr * clang::sema::instantiateTemplateAttributeForDecl (const Attr *At, ASTContext &C, Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs)
static ActionResult< CXXRecordDecl * > getPatternForClassTemplateSpecialization (Sema &S, SourceLocation PointOfInstantiation, ClassTemplateSpecializationDecl *ClassTemplateSpec, TemplateSpecializationKind TSK)
Get the instantiation pattern to use to instantiate the definition of a given ClassTemplateSpecializationDecl (either the pattern of the primary template or of a partial specialization).
static const Decl * getCanonicalParmVarDecl (const Decl *D)

convertCallArgsToString()

createSubstDiag()

getCanonicalParmVarDecl()

static const Decl * getCanonicalParmVarDecl ( const Decl * D) static

getPackSubstitutedTemplateArgument()

getPatternForClassTemplateSpecialization()

Get the instantiation pattern to use to instantiate the definition of a given ClassTemplateSpecializationDecl (either the pattern of the primary template or of a partial specialization).

Definition at line 4043 of file SemaTemplateInstantiate.cpp.

References clang::TemplateSpecCandidateSet::addCandidate(), clang::AS_public, clang::TemplateArgumentList::asArray(), clang::Sema::InstantiatingTemplate::Clear(), clang::Sema::Context, clang::Sema::DeduceTemplateArguments(), clang::SemaBase::Diag(), clang::ClassTemplateDecl::getInstantiatedFromMemberTemplate(), clang::TemplateSpecCandidateSet::getLocation(), clang::Sema::getMoreSpecializedPartialSpecialization(), clang::ClassTemplateDecl::getMostRecentDecl(), clang::ClassTemplateDecl::getPartialSpecializations(), clang::ClassTemplateSpecializationDecl::getSpecializedTemplate(), clang::ClassTemplateSpecializationDecl::getSpecializedTemplateOrPartial(), clang::ClassTemplateSpecializationDecl::getTemplateArgs(), clang::Sema::getTemplateArgumentBindingsText(), clang::ClassTemplateDecl::getTemplatedDecl(), clang::Sema::InstantiatingTemplate::isAlreadyInstantiating(), clang::Sema::InstantiatingTemplate::isInvalid(), clang::RedeclarableTemplateDecl::isMemberSpecialization(), clang::DeclAccessPair::make(), clang::MakeDeductionFailureInfo(), P, clang::Result, clang::TemplateSpecCandidate::set(), clang::ClassTemplateSpecializationDecl::setInstantiationOf(), clang::Decl::setInvalidDecl(), clang::Success, and clang::sema::TemplateDeductionInfo::takeCanonical().

Referenced by clang::Sema::InstantiateClassTemplateSpecialization().

NeedsInstantiationAsFunctionType()