clang 22.0.0git
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 321 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 13335 of file SemaOverload.cpp.

References DeductionFailure, DiagnoseBadDeduction(), FoundDecl, and Specialization.

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

◆ set()

Member Data Documentation

◆ DeductionFailure

DeductionFailureInfo clang::TemplateSpecCandidate::DeductionFailure

Template argument deduction info.

Definition at line 331 of file TemplateDeduction.h.

Referenced by NoteDeductionFailure(), and 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 324 of file TemplateDeduction.h.

Referenced by NoteDeductionFailure(), and 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 328 of file TemplateDeduction.h.

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


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