clang
9.0.0
|
OverloadCandidate - A single candidate in an overload set (C++ 13.3). More...
#include "clang/Sema/Overload.h"
Public Member Functions | |
bool | hasAmbiguousConversion () const |
hasAmbiguousConversion - Returns whether this overload candidate requires an ambiguous conversion or not. More... | |
bool | TryToFixBadConversion (unsigned Idx, Sema &S) |
unsigned | getNumParams () const |
Public Attributes | |
FunctionDecl * | Function |
Function - The actual function that this candidate represents. More... | |
DeclAccessPair | FoundDecl |
FoundDecl - The original declaration that was looked up / invented / otherwise found, together with its access. More... | |
QualType | BuiltinParamTypes [3] |
BuiltinParamTypes - Provides the parameter types of a built-in overload candidate. More... | |
CXXConversionDecl * | Surrogate |
Surrogate - The conversion function for which this candidate is a surrogate, but only if IsSurrogate is true. More... | |
ConversionSequenceList | Conversions |
The conversion sequences used to convert the function arguments to the function parameters. More... | |
ConversionFixItGenerator | Fix |
The FixIt hints which can be used to fix the Bad candidate. More... | |
bool | Viable: 1 |
Viable - True to indicate that this overload candidate is viable. More... | |
bool | IsSurrogate: 1 |
IsSurrogate - True to indicate that this candidate is a surrogate for a conversion to a function pointer or reference (C++ [over.call.object]). More... | |
bool | IgnoreObjectArgument: 1 |
IgnoreObjectArgument - True to indicate that the first argument's conversion, which for this function represents the implicit object argument, should be ignored. More... | |
CallExpr::ADLCallKind | IsADLCandidate: 1 |
True if the candidate was found using ADL. More... | |
unsigned char | FailureKind |
FailureKind - The reason why this candidate is not viable. More... | |
unsigned | ExplicitCallArguments |
The number of call arguments that were explicitly provided, to be used while performing partial ordering of function templates. More... | |
union { | |
DeductionFailureInfo DeductionFailure | |
StandardConversionSequence FinalConversion | |
FinalConversion - For a conversion function (where Function is a CXXConversionDecl), the standard conversion that occurs after the call to the overload candidate to convert the result of calling the conversion function to the required type. More... | |
}; | |
Friends | |
class | OverloadCandidateSet |
OverloadCandidate - A single candidate in an overload set (C++ 13.3).
Definition at line 739 of file Overload.h.
|
inline |
Definition at line 827 of file Overload.h.
References clang::Type::getAs(), clang::CXXConversionDecl::getConversionType(), clang::FunctionDecl::getNumParams(), and clang::Type::getPointeeType().
|
inline |
hasAmbiguousConversion - Returns whether this overload candidate requires an ambiguous conversion or not.
Definition at line 806 of file Overload.h.
References clang::C.
Definition at line 814 of file Overload.h.
|
friend |
Definition at line 840 of file Overload.h.
union { ... } |
QualType clang::OverloadCandidate::BuiltinParamTypes[3] |
BuiltinParamTypes - Provides the parameter types of a built-in overload candidate.
Only valid when Function is NULL.
Definition at line 753 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate().
ConversionSequenceList clang::OverloadCandidate::Conversions |
The conversion sequences used to convert the function arguments to the function parameters.
Definition at line 761 of file Overload.h.
Referenced by clang::OverloadCandidateSet::addCandidate().
DeductionFailureInfo clang::OverloadCandidate::DeductionFailure |
Definition at line 795 of file Overload.h.
unsigned clang::OverloadCandidate::ExplicitCallArguments |
The number of call arguments that were explicitly provided, to be used while performing partial ordering of function templates.
Definition at line 792 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate().
unsigned char clang::OverloadCandidate::FailureKind |
FailureKind - The reason why this candidate is not viable.
Actually an OverloadFailureKind.
Definition at line 788 of file Overload.h.
StandardConversionSequence clang::OverloadCandidate::FinalConversion |
FinalConversion - For a conversion function (where Function is a CXXConversionDecl), the standard conversion that occurs after the call to the overload candidate to convert the result of calling the conversion function to the required type.
Definition at line 801 of file Overload.h.
ConversionFixItGenerator clang::OverloadCandidate::Fix |
The FixIt hints which can be used to fix the Bad candidate.
Definition at line 764 of file Overload.h.
DeclAccessPair clang::OverloadCandidate::FoundDecl |
FoundDecl - The original declaration that was looked up / invented / otherwise found, together with its access.
Might be a UsingShadowDecl or a FunctionTemplateDecl.
Definition at line 749 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate(), and clang::Sema::AddMethodCandidate().
FunctionDecl* clang::OverloadCandidate::Function |
Function - The actual function that this candidate represents.
When NULL, this is a built-in candidate (C++ [over.oper]) or a surrogate for a conversion to a function pointer or reference (C++ [over.call.object]).
Definition at line 744 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate(), GetLocationForCandidate(), isBetterMultiversionCandidate(), and clang::OverloadCandidateSet::NoteCandidates().
bool clang::OverloadCandidate::IgnoreObjectArgument |
IgnoreObjectArgument - True to indicate that the first argument's conversion, which for this function represents the implicit object argument, should be ignored.
This will be true when the candidate is a static member function (where the implicit object argument is just a placeholder) or a non-static member function when the call doesn't have an object argument.
Definition at line 781 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate().
CallExpr::ADLCallKind clang::OverloadCandidate::IsADLCandidate |
True if the candidate was found using ADL.
Definition at line 784 of file Overload.h.
bool clang::OverloadCandidate::IsSurrogate |
IsSurrogate - True to indicate that this candidate is a surrogate for a conversion to a function pointer or reference (C++ [over.call.object]).
Definition at line 772 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate(), GetLocationForCandidate(), and clang::OverloadCandidateSet::NoteCandidates().
CXXConversionDecl* clang::OverloadCandidate::Surrogate |
Surrogate - The conversion function for which this candidate is a surrogate, but only if IsSurrogate is true.
Definition at line 757 of file Overload.h.
Referenced by GetLocationForCandidate().
bool clang::OverloadCandidate::Viable |
Viable - True to indicate that this overload candidate is viable.
Definition at line 767 of file Overload.h.
Referenced by clang::Sema::AddBuiltinCandidate(), and clang::OverloadCandidateSet::NoteCandidates().