clang API Documentation
#include <TemplateDeduction.h>
Public Member Functions | |
PartialDiagnosticAt * | getSFINAEDiagnostic () |
Retrieve the diagnostic which caused this deduction failure, if any. | |
TemplateParameter | getTemplateParameter () |
Retrieve the template parameter this deduction failure refers to, if any. | |
TemplateArgumentList * | getTemplateArgumentList () |
Retrieve the template argument list associated with this deduction failure, if any. | |
const TemplateArgument * | getFirstArg () |
Return the first template argument this deduction failure refers to, if any. | |
const TemplateArgument * | getSecondArg () |
Return the second template argument this deduction failure refers to, if any. | |
Expr * | getExpr () |
Return the expression this deduction failure refers to, if any. | |
void | Destroy () |
Free any memory associated with this deduction failure. | |
Public Attributes | |
unsigned | Result: 8 |
A Sema::TemplateDeductionResult. | |
unsigned | HasDiagnostic: 1 |
Indicates whether a diagnostic is stored in Diagnostic. | |
void * | Data |
Opaque pointer containing additional data about this deduction failure. | |
union { | |
void * Align | |
char Diagnostic [sizeof(PartialDiagnosticAt)] | |
}; | |
A diagnostic indicating why deduction failed. |
A structure used to record information about a failed template argument deduction, for diagnosis.
Definition at line 177 of file TemplateDeduction.h.
void DeductionFailureInfo::Destroy | ( | ) |
Free any memory associated with this deduction failure.
Definition at line 599 of file SemaOverload.cpp.
References Diag(), clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Return the expression this deduction failure refers to, if any.
Definition at line 745 of file SemaOverload.cpp.
References clang::Sema::TDK_FailedOverloadResolution.
Referenced by DiagnoseBadDeduction().
const TemplateArgument * DeductionFailureInfo::getFirstArg | ( | ) |
Return the first template argument this deduction failure refers to, if any.
Definition at line 693 of file SemaOverload.cpp.
References clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
const TemplateArgument * DeductionFailureInfo::getSecondArg | ( | ) |
Return the second template argument this deduction failure refers to, if any.
Definition at line 719 of file SemaOverload.cpp.
References clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
Retrieve the diagnostic which caused this deduction failure, if any.
Definition at line 633 of file SemaOverload.cpp.
Referenced by DiagnoseBadDeduction().
Retrieve the template argument list associated with this deduction failure, if any.
Definition at line 667 of file SemaOverload.cpp.
References clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
Retrieve the template parameter this deduction failure refers to, if any.
Definition at line 639 of file SemaOverload.cpp.
References clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
union { ... } |
A diagnostic indicating why deduction failed.
Definition at line 190 of file TemplateDeduction.h.
Opaque pointer containing additional data about this deduction failure.
Definition at line 186 of file TemplateDeduction.h.
Referenced by clang::Sema::AddConversionCandidate(), clang::Sema::AddOverloadCandidate(), clang::Sema::AddSurrogateCandidate(), DiagnoseFailedEnableIfAttr(), and clang::MakeDeductionFailureInfo().
char clang::DeductionFailureInfo::Diagnostic[sizeof(PartialDiagnosticAt)] |
Definition at line 191 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
Indicates whether a diagnostic is stored in Diagnostic.
Definition at line 182 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
A Sema::TemplateDeductionResult.
Definition at line 179 of file TemplateDeduction.h.
Referenced by CheckArityMismatch(), DiagnoseBadDeduction(), clang::MakeDeductionFailureInfo(), and RankDeductionFailure().