clang 20.0.0git
Public Member Functions | Public Attributes | List of all members
clang::TemplateSpecCandidate Struct Reference

TemplateSpecCandidate - This is a generalization of OverloadCandidate which keeps track of template argument deduction failure info, when handling explicit specializations (and instantiations) of templates beyond function overloading. More...

#include "clang/Sema/TemplateDeduction.h"

Public Member Functions

void set (DeclAccessPair Found, Decl *Spec, DeductionFailureInfo Info)
 
void NoteDeductionFailure (Sema &S, bool ForTakingAddress)
 Diagnose a template argument deduction failure.
 

Public Attributes

DeclAccessPair FoundDecl
 The declaration that was looked up, together with its access.
 
DeclSpecialization
 Specialization - The actual specialization that this candidate represents.
 
DeductionFailureInfo DeductionFailure
 Template argument deduction info.
 

Detailed Description

TemplateSpecCandidate - This is a generalization of OverloadCandidate which keeps track of template argument deduction failure info, when handling explicit specializations (and instantiations) of templates beyond function overloading.

For now, assume that the candidates are non-matching specializations. TODO: In the future, we may need to unify/generalize this with OverloadCandidate.

Definition at line 312 of file TemplateDeduction.h.

Member Function Documentation

◆ NoteDeductionFailure()

void TemplateSpecCandidate::NoteDeductionFailure ( Sema S,
bool  ForTakingAddress 
)

Diagnose a template argument deduction failure.

We are treating these failures as overload failures due to bad deductions.

Definition at line 12756 of file SemaOverload.cpp.

References DiagnoseBadDeduction(), and clang::Specialization.

Referenced by clang::TemplateSpecCandidateSet::NoteCandidates().

◆ set()

void clang::TemplateSpecCandidate::set ( DeclAccessPair  Found,
Decl Spec,
DeductionFailureInfo  Info 
)
inline

Member Data Documentation

◆ DeductionFailure

DeductionFailureInfo clang::TemplateSpecCandidate::DeductionFailure

Template argument deduction info.

Definition at line 322 of file TemplateDeduction.h.

Referenced by set().

◆ FoundDecl

DeclAccessPair clang::TemplateSpecCandidate::FoundDecl

The declaration that was looked up, together with its access.

Might be a UsingShadowDecl, but usually a FunctionTemplateDecl.

Definition at line 315 of file TemplateDeduction.h.

Referenced by set().

◆ Specialization

Decl* clang::TemplateSpecCandidate::Specialization

Specialization - The actual specialization that this candidate represents.

When NULL, this may be a built-in candidate.

Definition at line 319 of file TemplateDeduction.h.

Referenced by GetLocationForCandidate(), clang::TemplateSpecCandidateSet::NoteCandidates(), and set().


The documentation for this struct was generated from the following files: