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). More...
#include "clang/Sema/Overload.h"
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).
Definition at line 567 of file Overload.h.
◆ CompareKind Enumerator Better Indistinguishable WorseDefinition at line 785 of file Overload.h.
◆ KindKind - The kind of implicit conversion sequence.
BadConversion specifies that there is no conversion from the source type to the target type. AmbiguousConversion represents the unique ambiguous conversion (C++0x [over.best.ics]p10). StaticObjectArgumentConversion represents the conversion rules for the synthesized first argument of calls to static member functions ([over.best.ics.general]p8).
Enumerator StandardConversion StaticObjectArgumentConversion UserDefinedConversion AmbiguousConversion EllipsisConversion BadConversionDefinition at line 576 of file Overload.h.
◆ ImplicitConversionSequence() [1/2] clang::ImplicitConversionSequence::ImplicitConversionSequence ( ) inline ◆ ImplicitConversionSequence() [2/2]Definition at line 639 of file Overload.h.
References Ambiguous, AmbiguousConversion, Bad, BadConversion, clang::AmbiguousConversionSequence::copyFrom(), EllipsisConversion, clang::Other, Standard, StandardConversion, StaticObjectArgumentConversion, UserDefined, and UserDefinedConversion.
◆ ~ImplicitConversionSequence() clang::ImplicitConversionSequence::~ImplicitConversionSequence ( ) inlineDefinition at line 663 of file Overload.h.
◆ DiagnoseAmbiguousConversion() ◆ dump() void ImplicitConversionSequence::dump ( ) const ◆ getInitializerListContainerType() QualType clang::ImplicitConversionSequence::getInitializerListContainerType ( ) const inline ◆ getKind() Kind clang::ImplicitConversionSequence::getKind ( ) const inlineDefinition at line 667 of file Overload.h.
References isInitialized().
Referenced by clang::Sema::AddConversionCandidate(), BuildConvertedConstantExpression(), CompareImplicitConversionSequences(), DiagnoseNarrowingInInitList(), getKindRank(), isAmbiguous(), isBad(), isEllipsis(), isStandard(), isStaticObjectArgument(), isUserDefined(), clang::Sema::PerformImplicitConversion(), and TryContextuallyConvertToObjCPointer().
◆ getKindRank() unsigned clang::ImplicitConversionSequence::getKindRank ( ) const inline ◆ getNullptrToBool()Form an "implicit" conversion sequence from nullptr_t to bool, for a direct-initialization of a bool object from nullptr_t.
Definition at line 766 of file Overload.h.
References clang::StandardConversionSequence::First, clang::ICK_Boolean_Conversion, clang::ICK_Lvalue_To_Rvalue, clang::StandardConversionSequence::Second, clang::StandardConversionSequence::setAsIdentityConversion(), clang::StandardConversionSequence::setFromType(), setStandard(), clang::StandardConversionSequence::setToType(), and Standard.
Referenced by clang::InitializationSequence::InitializeFrom(), and TryContextuallyConvertToBool().
◆ hasInitializerListContainerType() bool clang::ImplicitConversionSequence::hasInitializerListContainerType ( ) const inline ◆ isAmbiguous() bool clang::ImplicitConversionSequence::isAmbiguous ( ) const inline ◆ isBad() bool clang::ImplicitConversionSequence::isBad ( ) const inlineDefinition at line 699 of file Overload.h.
References BadConversion, and getKind().
Referenced by clang::Sema::AddSurrogateCandidate(), CompareImplicitConversionSequences(), DiagnoseBadConversion(), clang::InitializationSequence::InitializeFrom(), isFailure(), NoteAmbiguousUserConversions(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformContextuallyConvertToObjCPointer(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::SelectBestMethod(), TryCopyInitialization(), TryListConversion(), TryObjectArgumentInitialization(), and TryReferenceInitializationCore().
◆ isEllipsis() bool clang::ImplicitConversionSequence::isEllipsis ( ) const inline ◆ isFailure() bool clang::ImplicitConversionSequence::isFailure ( ) const inline ◆ isInitialized() bool clang::ImplicitConversionSequence::isInitialized ( ) const inlineDetermines whether this conversion sequence has been initialized.
Most operations should never need to query uninitialized conversions and should assert as above.
Definition at line 712 of file Overload.h.
Referenced by getKind().
◆ isInitializerListOfIncompleteArray() bool clang::ImplicitConversionSequence::isInitializerListOfIncompleteArray ( ) const inline ◆ isStandard() bool clang::ImplicitConversionSequence::isStandard ( ) const inline ◆ isStaticObjectArgument() bool clang::ImplicitConversionSequence::isStaticObjectArgument ( ) const inline ◆ isUserDefined() bool clang::ImplicitConversionSequence::isUserDefined ( ) const inline ◆ operator=() ◆ setAmbiguous() void clang::ImplicitConversionSequence::setAmbiguous ( ) inline ◆ setAsIdentityConversion() void clang::ImplicitConversionSequence::setAsIdentityConversion ( QualType T ) inline ◆ setBad() [1/2] ◆ setBad() [2/2] ◆ setEllipsis() void clang::ImplicitConversionSequence::setEllipsis ( ) inline ◆ setInitializerListContainerType() void clang::ImplicitConversionSequence::setInitializerListContainerType ( QualType T, bool IA ) inline ◆ setStandard() void clang::ImplicitConversionSequence::setStandard ( ) inline ◆ setStaticObjectArgument() void clang::ImplicitConversionSequence::setStaticObjectArgument ( ) inline ◆ setUserDefined() void clang::ImplicitConversionSequence::setUserDefined ( ) inline ◆ union { ... } clang::ImplicitConversionSequence::@240 ◆ Ambiguous ◆ Bad ◆ StandardWhen ConversionKind == StandardConversion, provides the details of the standard conversion sequence.
Definition at line 618 of file Overload.h.
Referenced by clang::Sema::AddConversionCandidate(), clang::Sema::AddSurrogateCandidate(), BuildConvertedConstantExpression(), CheckC23ConstexprInitConversion(), CompareImplicitConversionSequences(), DiagnoseNarrowingInInitList(), dump(), getNullptrToBool(), hasDeprecatedStringLiteralToCharPtrConversion(), ImplicitConversionSequence(), clang::InitializationSequence::InitializeFrom(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::SelectBestMethod(), setAsIdentityConversion(), TryContextuallyConvertToObjCPointer(), TryImplicitConversion(), TryListInitialization(), tryObjCWritebackConversion(), TryObjectArgumentInitialization(), TryReferenceInit(), TryRefInitWithConversionFunction(), and TryUserDefinedConversion().
◆ UserDefinedWhen ConversionKind == UserDefinedConversion, provides the details of the user-defined conversion sequence.
Definition at line 622 of file Overload.h.
Referenced by BuildConvertedConstantExpression(), CompareImplicitConversionSequences(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), dump(), FindConversionForRefInit(), hasDeprecatedStringLiteralToCharPtrConversion(), ImplicitConversionSequence(), clang::Sema::PerformImplicitConversion(), TryContextuallyConvertToObjCPointer(), TryReferenceInit(), and TryUserDefinedConversion().
The documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4