class ImplicitConversionSequence
Declaration
class ImplicitConversionSequence { /* full declaration omitted */ };
Description
ImplicitConversionSequence - Represents an implicit conversion sequence, which may be a standard conversion sequence (C++ 13.3.3.1.1), user-defined conversion sequence (C++ 13.3.3.1.2), or an ellipsis conversion sequence (C++ 13.3.3.1.3).
Declared at: clang/include/clang/Sema/Overload.h:518
Member Variables
- private unsigned int ConversionKind
- ConversionKind - The kind of implicit conversion sequence.
- private unsigned int InitializerListOfIncompleteArray
- private clang::QualType InitializerListContainerType
- When initializing an array or std::initializer_list from an initializer-list, this is the array or std::initializer_list type being initialized. The remainder of the conversion sequence, including ToType, describe the worst conversion of an initializer to an element of the array or std::initializer_list. (Note, 'worst' is not well defined.)
- public anonymous struct / union
Method Overview
- public void DiagnoseAmbiguousConversion(clang::Sema & S, clang::SourceLocation CaretLoc, const clang::PartialDiagnostic & PDiag) const
- public ImplicitConversionSequence()
- public ImplicitConversionSequence(const clang::ImplicitConversionSequence & Other)
- private void destruct()
- public void dump() const
- public clang::QualType getInitializerListContainerType() const
- public clang::ImplicitConversionSequence::Kind getKind() const
- public unsigned int getKindRank() const
- public static clang::ImplicitConversionSequence getNullptrToBool(clang::QualType SourceType, clang::QualType DestType, bool NeedLValToRVal)
- public bool hasInitializerListContainerType() const
- public bool isAmbiguous() const
- public bool isBad() const
- public bool isEllipsis() const
- public bool isFailure() const
- public bool isInitialized() const
- public bool isInitializerListOfIncompleteArray() const
- public bool isStandard() const
- public bool isUserDefined() const
- public void setAmbiguous()
- public void setAsIdentityConversion(clang::QualType T)
- public void setBad(BadConversionSequence::FailureKind Failure, clang::Expr * FromExpr, clang::QualType ToType)
- public void setBad(BadConversionSequence::FailureKind Failure, clang::QualType FromType, clang::QualType ToType)
- public void setEllipsis()
- public void setInitializerListContainerType(clang::QualType T, bool IA)
- private void setKind(clang::ImplicitConversionSequence::Kind K)
- public void setStandard()
- public void setUserDefined()
- public ~ImplicitConversionSequence()
Methods
¶void DiagnoseAmbiguousConversion(
clang::Sema& S,
clang::SourceLocation CaretLoc,
const clang::PartialDiagnostic& PDiag) const
void DiagnoseAmbiguousConversion(
clang::Sema& S,
clang::SourceLocation CaretLoc,
const clang::PartialDiagnostic& PDiag) const
Declared at: clang/include/clang/Sema/Overload.h:729
Parameters
- clang::Sema& S
- clang::SourceLocation CaretLoc
- const clang::PartialDiagnostic& PDiag
¶ImplicitConversionSequence()
ImplicitConversionSequence()
Declared at: clang/include/clang/Sema/Overload.h:578
¶ImplicitConversionSequence(
const clang::ImplicitConversionSequence&
Other)
ImplicitConversionSequence(
const clang::ImplicitConversionSequence&
Other)
Declared at: clang/include/clang/Sema/Overload.h:584
Parameters
- const clang::ImplicitConversionSequence& Other
¶void destruct()
void destruct()
Declared at: clang/include/clang/Sema/Overload.h:555
¶void dump() const
void dump() const
Declared at: clang/include/clang/Sema/Overload.h:733
¶clang::QualType getInitializerListContainerType()
const
clang::QualType getInitializerListContainerType()
const
Declared at: clang/include/clang/Sema/Overload.h:696
¶clang::ImplicitConversionSequence::Kind getKind()
const
clang::ImplicitConversionSequence::Kind getKind()
const
Declared at: clang/include/clang/Sema/Overload.h:610
¶unsigned int getKindRank() const
unsigned int getKindRank() const
Description
Return a ranking of the implicit conversion sequence kind, where smaller ranks represent better conversion sequences. In particular, this routine gives user-defined conversion sequences and ambiguous conversion sequences the same rank, per C++ [over.best.ics]p10.
Declared at: clang/include/clang/Sema/Overload.h:622
¶static clang::ImplicitConversionSequence
getNullptrToBool(clang::QualType SourceType,
clang::QualType DestType,
bool NeedLValToRVal)
static clang::ImplicitConversionSequence
getNullptrToBool(clang::QualType SourceType,
clang::QualType DestType,
bool NeedLValToRVal)
Description
Form an "implicit" conversion sequence from nullptr_t to bool, for a direct-initialization of a bool object from nullptr_t.
Declared at: clang/include/clang/Sema/Overload.h:704
Parameters
- clang::QualType SourceType
- clang::QualType DestType
- bool NeedLValToRVal
¶bool hasInitializerListContainerType() const
bool hasInitializerListContainerType() const
Declared at: clang/include/clang/Sema/Overload.h:686
¶bool isAmbiguous() const
bool isAmbiguous() const
Declared at: clang/include/clang/Sema/Overload.h:644
¶bool isBad() const
bool isBad() const
Declared at: clang/include/clang/Sema/Overload.h:641
¶bool isEllipsis() const
bool isEllipsis() const
Declared at: clang/include/clang/Sema/Overload.h:643
¶bool isFailure() const
bool isFailure() const
Declared at: clang/include/clang/Sema/Overload.h:646
¶bool isInitialized() const
bool isInitialized() const
Description
Determines whether this conversion sequence has been initialized. Most operations should never need to query uninitialized conversions and should assert as above.
Declared at: clang/include/clang/Sema/Overload.h:651
¶bool isInitializerListOfIncompleteArray() const
bool isInitializerListOfIncompleteArray() const
Declared at: clang/include/clang/Sema/Overload.h:693
¶bool isStandard() const
bool isStandard() const
Declared at: clang/include/clang/Sema/Overload.h:642
¶bool isUserDefined() const
bool isUserDefined() const
Declared at: clang/include/clang/Sema/Overload.h:645
¶void setAmbiguous()
void setAmbiguous()
Declared at: clang/include/clang/Sema/Overload.h:671
¶void setAsIdentityConversion(clang::QualType T)
void setAsIdentityConversion(clang::QualType T)
Declared at: clang/include/clang/Sema/Overload.h:677
Parameters
¶void setBad(
BadConversionSequence::FailureKind Failure,
clang::Expr* FromExpr,
clang::QualType ToType)
void setBad(
BadConversionSequence::FailureKind Failure,
clang::Expr* FromExpr,
clang::QualType ToType)
Description
Sets this sequence as a bad conversion for an explicit argument.
Declared at: clang/include/clang/Sema/Overload.h:654
Parameters
- BadConversionSequence::FailureKind Failure
- clang::Expr* FromExpr
- clang::QualType ToType
¶void setBad(
BadConversionSequence::FailureKind Failure,
clang::QualType FromType,
clang::QualType ToType)
void setBad(
BadConversionSequence::FailureKind Failure,
clang::QualType FromType,
clang::QualType ToType)
Description
Sets this sequence as a bad conversion for an implicit argument.
Declared at: clang/include/clang/Sema/Overload.h:661
Parameters
- BadConversionSequence::FailureKind Failure
- clang::QualType FromType
- clang::QualType ToType
¶void setEllipsis()
void setEllipsis()
Declared at: clang/include/clang/Sema/Overload.h:668
¶void setInitializerListContainerType(
clang::QualType T,
bool IA)
void setInitializerListContainerType(
clang::QualType T,
bool IA)
Declared at: clang/include/clang/Sema/Overload.h:689
Parameters
- clang::QualType T
- bool IA
¶void setKind(
clang::ImplicitConversionSequence::Kind K)
void setKind(
clang::ImplicitConversionSequence::Kind K)
Declared at: clang/include/clang/Sema/Overload.h:550
Parameters
- clang::ImplicitConversionSequence::Kind K
¶void setStandard()
void setStandard()
Declared at: clang/include/clang/Sema/Overload.h:667
¶void setUserDefined()
void setUserDefined()
Declared at: clang/include/clang/Sema/Overload.h:669
¶~ImplicitConversionSequence()
~ImplicitConversionSequence()
Declared at: clang/include/clang/Sema/Overload.h:606