clang API Documentation
Provides information about an attempted template argument deduction, whose success or failure was described by a TemplateDeductionResult value. More...
#include <TemplateDeduction.h>

Public Types | |
| typedef SmallVectorImpl < PartialDiagnosticAt > ::const_iterator | diag_iterator |
| Iterator over the set of suppressed diagnostics. | |
Public Member Functions | |
| TemplateDeductionInfo (ASTContext &Context, SourceLocation Loc) | |
| ~TemplateDeductionInfo () | |
| SourceLocation | getLocation () const |
| Returns the location at which template argument is occurring. | |
| TemplateArgumentList * | take () |
| Take ownership of the deduced template argument list. | |
| void | takeSFINAEDiagnostic (PartialDiagnosticAt &PD) |
| Take ownership of the SFINAE diagnostic. | |
| void | reset (TemplateArgumentList *NewDeduced) |
| Provide a new template argument list that contains the results of template argument deduction. | |
| bool | hasSFINAEDiagnostic () const |
| Is a SFINAE diagnostic available? | |
| void | addSFINAEDiagnostic (SourceLocation Loc, PartialDiagnostic PD) |
| Set the diagnostic which caused the SFINAE failure. | |
| void | addSuppressedDiagnostic (SourceLocation Loc, PartialDiagnostic PD) |
| Add a new diagnostic to the set of diagnostics. | |
| diag_iterator | diag_begin () const |
| Returns an iterator at the beginning of the sequence of suppressed diagnostics. | |
| diag_iterator | diag_end () const |
| Returns an iterator at the end of the sequence of suppressed diagnostics. | |
Public Attributes | |
| TemplateParameter | Param |
| The template parameter to which a template argument deduction failure refers. | |
| TemplateArgument | FirstArg |
| The first template argument to which the template argument deduction failure refers. | |
| TemplateArgument | SecondArg |
| The second template argument to which the template argument deduction failure refers. | |
Provides information about an attempted template argument deduction, whose success or failure was described by a TemplateDeductionResult value.
Definition at line 30 of file TemplateDeduction.h.
| typedef SmallVectorImpl<PartialDiagnosticAt>::const_iterator clang::sema::TemplateDeductionInfo::diag_iterator |
Iterator over the set of suppressed diagnostics.
Definition at line 119 of file TemplateDeduction.h.
| clang::sema::TemplateDeductionInfo::TemplateDeductionInfo | ( | ASTContext & | Context, |
| SourceLocation | Loc | ||
| ) | [inline] |
Definition at line 54 of file TemplateDeduction.h.
| clang::sema::TemplateDeductionInfo::~TemplateDeductionInfo | ( | ) | [inline] |
Definition at line 57 of file TemplateDeduction.h.
| void clang::sema::TemplateDeductionInfo::addSFINAEDiagnostic | ( | SourceLocation | Loc, |
| PartialDiagnostic | PD | ||
| ) | [inline] |
Set the diagnostic which caused the SFINAE failure.
Definition at line 96 of file TemplateDeduction.h.
| void clang::sema::TemplateDeductionInfo::addSuppressedDiagnostic | ( | SourceLocation | Loc, |
| PartialDiagnostic | PD | ||
| ) | [inline] |
Add a new diagnostic to the set of diagnostics.
Definition at line 108 of file TemplateDeduction.h.
| diag_iterator clang::sema::TemplateDeductionInfo::diag_begin | ( | ) | const [inline] |
Returns an iterator at the beginning of the sequence of suppressed diagnostics.
Definition at line 123 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction().
| diag_iterator clang::sema::TemplateDeductionInfo::diag_end | ( | ) | const [inline] |
Returns an iterator at the end of the sequence of suppressed diagnostics.
Definition at line 127 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction().
| SourceLocation clang::sema::TemplateDeductionInfo::getLocation | ( | ) | const [inline] |
Returns the location at which template argument is occurring.
Definition at line 63 of file TemplateDeduction.h.
Referenced by ConvertDeducedTemplateArgument(), and DeduceTemplateArgumentsByTypeMatch().
| bool clang::sema::TemplateDeductionInfo::hasSFINAEDiagnostic | ( | ) | const [inline] |
Is a SFINAE diagnostic available?
Definition at line 91 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
| void clang::sema::TemplateDeductionInfo::reset | ( | TemplateArgumentList * | NewDeduced | ) | [inline] |
Provide a new template argument list that contains the results of template argument deduction.
Definition at line 85 of file TemplateDeduction.h.
Referenced by FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), and clang::Sema::SubstituteExplicitTemplateArguments().
| TemplateArgumentList* clang::sema::TemplateDeductionInfo::take | ( | ) | [inline] |
Take ownership of the deduced template argument list.
Definition at line 68 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction(), clang::Sema::InstantiateClassTemplateSpecialization(), and clang::MakeDeductionFailureInfo().
| void clang::sema::TemplateDeductionInfo::takeSFINAEDiagnostic | ( | PartialDiagnosticAt & | PD | ) | [inline] |
Take ownership of the SFINAE diagnostic.
Definition at line 75 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
The first template argument to which the template argument deduction failure refers.
Depending on the result of the template argument deduction, this template argument may have different meanings:
TDK_Inconsistent: this argument is the first value deduced for the corresponding template parameter.
TDK_SubstitutionFailure: this argument is the template argument we were instantiating when we encountered an error.
TDK_NonDeducedMismatch: this is the template argument provided in the source code.
Definition at line 156 of file TemplateDeduction.h.
Referenced by DeduceNonTypeTemplateArgument(), DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), FinishArgumentPackDeduction(), FinishTemplateArgumentDeduction(), and clang::MakeDeductionFailureInfo().
The template parameter to which a template argument deduction failure refers.
Depending on the result of template argument deduction, this template parameter may have different meanings:
TDK_Incomplete: this is the first template parameter whose corresponding template argument was not deduced.
TDK_Inconsistent: this is the template parameter for which two different template argument values were deduced.
Definition at line 140 of file TemplateDeduction.h.
Referenced by DeduceNonTypeTemplateArgument(), DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), FinishArgumentPackDeduction(), FinishTemplateArgumentDeduction(), clang::Sema::FinishTemplateArgumentDeduction(), clang::MakeDeductionFailureInfo(), and clang::Sema::SubstituteExplicitTemplateArguments().
The second template argument to which the template argument deduction failure refers.
FIXME: Finish documenting this.
Definition at line 162 of file TemplateDeduction.h.
Referenced by DeduceNonTypeTemplateArgument(), DeduceTemplateArguments(), DeduceTemplateArgumentsByTypeMatch(), FinishArgumentPackDeduction(), FinishTemplateArgumentDeduction(), and clang::MakeDeductionFailureInfo().