clang API Documentation

Public Types | Public Member Functions | Public Attributes
clang::sema::TemplateDeductionInfo Class Reference

Provides information about an attempted template argument deduction, whose success or failure was described by a TemplateDeductionResult value. More...

#include <TemplateDeduction.h>

Collaboration diagram for clang::sema::TemplateDeductionInfo:
Collaboration graph
[legend]

List of all members.

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.
TemplateArgumentListtake ()
 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.

Detailed Description

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.


Member Typedef Documentation

Iterator over the set of suppressed diagnostics.

Definition at line 119 of file TemplateDeduction.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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().


Member Data Documentation

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().


The documentation for this class was generated from the following file: