StandardConversionSequence - represents a standard conversion sequence (C++ 13.3.3.1.1). More...
#include "clang/Sema/Overload.h"
StandardConversionSequence - represents a standard conversion sequence (C++ 13.3.3.1.1).
A standard conversion sequence contains between zero and three conversions. If a particular conversion is not needed, it will be set to the identity conversion (ICK_Identity).
Definition at line 292 of file Overload.h.
◆ dump() LLVM_DUMP_METHOD void StandardConversionSequence::dump ( ) const ◆ getFromType() QualType clang::StandardConversionSequence::getFromType ( ) const inline ◆ getNarrowingKind()Check if this standard conversion sequence represents a narrowing conversion, according to C++11 [dcl.init.list]p7.
Definition at line 356 of file SemaOverload.cpp.
References clang::Type::getAs(), clang::APValue::getFloat(), clang::ASTContext::getFloatingTypeOrder(), clang::ASTContext::getFloatTypeSemantics(), clang::ASTContext::getIntWidth(), clang::ASTContext::getLangOpts(), getToType(), clang::ICK_Boolean_Conversion, clang::ICK_Complex_Real, clang::ICK_Floating_Conversion, clang::ICK_Floating_Integral, clang::ICK_Floating_Promotion, clang::ICK_Integral_Conversion, IgnoreNarrowingConversion(), clang::Initializer, clang::Type::isComplexType(), clang::APValue::isFloat(), clang::Type::isIntegralOrUnscopedEnumerationType(), clang::Type::isIntegralType(), clang::Type::isRealFloatingType(), clang::Type::isSignedIntegerOrEnumerationType(), clang::NK_Constant_Narrowing, clang::NK_Dependent_Narrowing, clang::NK_Not_Narrowing, clang::NK_Type_Narrowing, clang::NK_Variable_Narrowing, clang::Result, Second, and clang::Expr::EvalResult::Val.
Referenced by BuildConvertedConstantExpression(), CheckC23ConstexprInitConversion(), checkThreeWayNarrowingConversion(), and DiagnoseNarrowingInInitList().
◆ getRank() ◆ getToType()Definition at line 398 of file Overload.h.
References clang::QualType::getFromOpaquePtr(), and ToTypePtrs.
Referenced by CheckConvertedConstantConversions(), CompareDerivedToBaseConversions(), CompareQualificationConversions(), CompareStandardConversionSequences(), compareStandardConversionSubsets(), getFixedEnumPromtion(), getNarrowingKind(), clang::InitializationSequence::InitializeFrom(), isPointerConversionToBool(), isPointerConversionToVoidPointer(), tryAtomicConversion(), TryListInitialization(), and TryRefInitWithConversionFunction().
◆ isIdentityConversion() bool clang::StandardConversionSequence::isIdentityConversion ( ) const inline ◆ isPointerConversionToBool() bool StandardConversionSequence::isPointerConversionToBool ( ) const ◆ isPointerConversionToVoidPointer() bool StandardConversionSequence::isPointerConversionToVoidPointer ( ASTContext & Context ) constisPointerConversionToVoidPointer - Determines whether this conversion is a conversion of a pointer to a void pointer.
This is used as part of the ranking of standard conversion sequences (C++ 13.3.3.2p4).
Definition at line 293 of file SemaOverload.cpp.
References First, clang::ASTContext::getArrayDecayedType(), clang::Type::getAs(), getFromType(), clang::Type::getPointeeType(), getToType(), clang::ICK_Array_To_Pointer, clang::ICK_Pointer_Conversion, clang::Type::isAnyPointerType(), clang::Type::isVoidType(), and Second.
Referenced by CompareStandardConversionSequences().
◆ setAllToTypes() void clang::StandardConversionSequence::setAllToTypes ( QualType T ) inline ◆ setAsIdentityConversion() void StandardConversionSequence::setAsIdentityConversion ( )StandardConversionSequence - Set the standard conversion sequence to the identity conversion.
Definition at line 235 of file SemaOverload.cpp.
References BindsImplicitObjectArgumentWithoutRefQualifier, BindsToFunctionLvalue, BindsToRvalue, CopyConstructor, DeprecatedStringLiteralToCharPtr, Dimension, DirectBinding, First, clang::ICK_Identity, IsLvalueReference, ObjCLifetimeConversionBinding, QualificationIncludesObjCLifetime, ReferenceBinding, Second, and Third.
Referenced by clang::Sema::AddConversionCandidate(), checkThreeWayNarrowingConversion(), clang::ImplicitConversionSequence::getNullptrToBool(), clang::ImplicitConversionSequence::ImplicitConversionSequence(), clang::InitializationSequence::InitializeFrom(), IsInitializerListConstructorConversion(), IsStandardConversion(), IsUserDefinedConversion(), clang::ImplicitConversionSequence::setAsIdentityConversion(), TryImplicitConversion(), TryListInitialization(), tryObjCWritebackConversion(), TryObjectArgumentInitialization(), and TryUserDefinedConversion().
◆ setFromType() void clang::StandardConversionSequence::setFromType ( QualType T ) inlineDefinition at line 381 of file Overload.h.
References FromTypePtr, and clang::T.
Referenced by clang::Sema::AddConversionCandidate(), clang::ImplicitConversionSequence::getNullptrToBool(), IsInitializerListConstructorConversion(), IsStandardConversion(), IsUserDefinedConversion(), clang::ImplicitConversionSequence::setAsIdentityConversion(), TryImplicitConversion(), TryListInitialization(), TryObjectArgumentInitialization(), TryReferenceInit(), and TryUserDefinedConversion().
◆ setToType() ◆ BindsImplicitObjectArgumentWithoutRefQualifier unsigned clang::StandardConversionSequence::BindsImplicitObjectArgumentWithoutRefQualifier ◆ BindsToFunctionLvalue unsigned clang::StandardConversionSequence::BindsToFunctionLvalue ◆ BindsToRvalue unsigned clang::StandardConversionSequence::BindsToRvalue ◆ CopyConstructor ◆ DeprecatedStringLiteralToCharPtr unsigned clang::StandardConversionSequence::DeprecatedStringLiteralToCharPtr ◆ Dimension ◆ DirectBinding unsigned clang::StandardConversionSequence::DirectBinding ◆ FirstFirst – The first conversion can be an lvalue-to-rvalue conversion, array-to-pointer conversion, or function-to-pointer conversion.
Definition at line 297 of file Overload.h.
Referenced by clang::Sema::AddConversionCandidate(), CompareDerivedToBaseConversions(), CompareQualificationConversions(), CompareStandardConversionSequences(), dump(), clang::UserDefinedConversionSequence::dump(), clang::ImplicitConversionSequence::getNullptrToBool(), getRank(), clang::InitializationSequence::InitializeFrom(), isPointerConversionToBool(), isPointerConversionToVoidPointer(), IsStandardConversion(), clang::Sema::PerformImplicitConversion(), setAsIdentityConversion(), TryListInitialization(), tryObjCWritebackConversion(), and TryReferenceInit().
◆ FoundCopyConstructor DeclAccessPair clang::StandardConversionSequence::FoundCopyConstructor ◆ FromTypePtr void* clang::StandardConversionSequence::FromTypePtr ◆ IncompatibleObjC unsigned clang::StandardConversionSequence::IncompatibleObjC ◆ IsLvalueReference unsigned clang::StandardConversionSequence::IsLvalueReference ◆ ObjCLifetimeConversionBinding unsigned clang::StandardConversionSequence::ObjCLifetimeConversionBinding ◆ QualificationIncludesObjCLifetime unsigned clang::StandardConversionSequence::QualificationIncludesObjCLifetime ◆ ReferenceBinding unsigned clang::StandardConversionSequence::ReferenceBinding ◆ SecondSecond - The second conversion can be an integral promotion, floating point promotion, integral conversion, floating point conversion, floating-integral conversion, pointer conversion, pointer-to-member conversion, or boolean conversion.
Definition at line 303 of file Overload.h.
Referenced by clang::Sema::AddConversionCandidate(), CheckConvertedConstantConversions(), checkThreeWayNarrowingConversion(), CompareDerivedToBaseConversions(), CompareQualificationConversions(), CompareStandardConversionSequences(), compareStandardConversionSubsets(), dropPointerConversion(), dump(), clang::UserDefinedConversionSequence::dump(), getFixedEnumPromtion(), getNarrowingKind(), clang::ImplicitConversionSequence::getNullptrToBool(), getRank(), clang::InitializationSequence::InitializeFrom(), isIdentityConversion(), isPointerConversionToVoidPointer(), IsStandardConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::SelectBestMethod(), setAsIdentityConversion(), tryAtomicConversion(), TryImplicitConversion(), TryListInitialization(), TryObjectArgumentInitialization(), TryReferenceInit(), and TryUserDefinedConversion().
◆ ThirdThird - The third conversion can be a qualification conversion or a function conversion.
Definition at line 312 of file Overload.h.
Referenced by CompareQualificationConversions(), compareStandardConversionSubsets(), dropPointerConversion(), dump(), clang::UserDefinedConversionSequence::dump(), getRank(), isIdentityConversion(), IsStandardConversion(), clang::Sema::PerformImplicitConversion(), setAsIdentityConversion(), tryAtomicConversion(), and TryReferenceInit().
◆ ToTypePtrs void* clang::StandardConversionSequence::ToTypePtrs[3]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