clang API Documentation
A scope in which we're performing pack deduction. More...
Public Member Functions | |
PackDeductionScope (Sema &S, TemplateParameterList *TemplateParams, SmallVectorImpl< DeducedTemplateArgument > &Deduced, TemplateDeductionInfo &Info, TemplateArgument Pattern) | |
~PackDeductionScope () | |
void | nextPackElement () |
Move to deducing the next element in each pack that is being deduced. | |
Sema::TemplateDeductionResult | finish (bool HasAnyArguments) |
Finish template argument deduction for a set of argument packs, producing the argument packs and checking for consistency with prior deductions. |
A scope in which we're performing pack deduction.
Definition at line 606 of file SemaTemplateDeduction.cpp.
PackDeductionScope::PackDeductionScope | ( | Sema & | S, |
TemplateParameterList * | TemplateParams, | ||
SmallVectorImpl< DeducedTemplateArgument > & | Deduced, | ||
TemplateDeductionInfo & | Info, | ||
TemplateArgument | Pattern | ||
) | [inline] |
Definition at line 608 of file SemaTemplateDeduction.cpp.
References clang::Sema::collectUnexpandedParameterPacks(), clang::Sema::CurrentInstantiationScope, Depth, getDepthAndIndex(), clang::LocalInstantiationScope::getPartiallySubstitutedPack(), clang::sema::TemplateDeductionInfo::PendingDeducedPacks, clang::DeducedPack::Saved, and clang::TemplateParameterList::size().
PackDeductionScope::~PackDeductionScope | ( | ) | [inline] |
Definition at line 658 of file SemaTemplateDeduction.cpp.
Sema::TemplateDeductionResult PackDeductionScope::finish | ( | bool | HasAnyArguments | ) | [inline] |
Finish template argument deduction for a set of argument packs, producing the argument packs and checking for consistency with prior deductions.
Definition at line 680 of file SemaTemplateDeduction.cpp.
References checkDeducedTemplateArguments(), clang::Sema::Context, clang::TemplateArgument::getEmptyPack(), clang::TemplateArgument::isNull(), makeTemplateParameter(), S, clang::Sema::TDK_Inconsistent, and clang::Sema::TDK_Success.
Referenced by DeduceTemplateArguments(), and clang::Sema::DeduceTemplateArguments().
void PackDeductionScope::nextPackElement | ( | ) | [inline] |
Move to deducing the next element in each pack that is being deduced.
Definition at line 664 of file SemaTemplateDeduction.cpp.
References clang::TemplateArgument::isNull().
Referenced by DeduceTemplateArguments(), and clang::Sema::DeduceTemplateArguments().