class StandardConversionSequence
Declaration
class StandardConversionSequence { /* full declaration omitted */ };
Description
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). Note that the three conversions are specified as separate members (rather than in an array) so that we can keep the size of a standard conversion sequence to a single word.
Declared at: clang/include/clang/Sema/Overload.h:259
Member Variables
- public clang::ImplicitConversionKind First
- First -- The first conversion can be an lvalue-to-rvalue conversion, array-to-pointer conversion, or function-to-pointer conversion.
- public clang::ImplicitConversionKind Second
- Second - 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.
- public clang::ImplicitConversionKind Third
- Third - The third conversion can be a qualification conversion or a function conversion.
- public unsigned int DeprecatedStringLiteralToCharPtr
- Whether this is the deprecated conversion of a string literal to a pointer to non-const character data (C++ 4.2p2).
- public unsigned int QualificationIncludesObjCLifetime
- Whether the qualification conversion involves a change in the Objective-C lifetime (for automatic reference counting).
- public unsigned int IncompatibleObjC
- IncompatibleObjC - Whether this is an Objective-C conversion that we should warn about (if we actually use it).
- public unsigned int ReferenceBinding
- ReferenceBinding - True when this is a reference binding (C++ [over.ics.ref]).
- public unsigned int DirectBinding
- DirectBinding - True when this is a reference binding that is a direct binding (C++ [dcl.init.ref]).
- public unsigned int IsLvalueReference
- Whether this is an lvalue reference binding (otherwise, it's an rvalue reference binding).
- public unsigned int BindsToFunctionLvalue
- Whether we're binding to a function lvalue.
- public unsigned int BindsToRvalue
- Whether we're binding to an rvalue.
- public unsigned int BindsImplicitObjectArgumentWithoutRefQualifier
- Whether this binds an implicit object argument to a non-static member function without a ref-qualifier.
- public unsigned int ObjCLifetimeConversionBinding
- Whether this binds a reference to an object with a different Objective-C lifetime qualifier.
- public void* FromTypePtr
- FromType - The type that this conversion is converting from. This is an opaque pointer that can be translated into a QualType.
- public void* [3] ToTypePtrs
- ToType - The types that this conversion is converting to in each step. This is an opaque pointer that can be translated into a QualType.
- public clang::CXXConstructorDecl* CopyConstructor
- CopyConstructor - The copy constructor that is used to perform this conversion, when the conversion is actually just the initialization of an object via copy constructor. Such conversions are either identity conversions or derived-to-base conversions.
- public clang::DeclAccessPair FoundCopyConstructor
Method Overview
- public void dump() const
- public clang::QualType getFromType() const
- public clang::NarrowingKind getNarrowingKind(clang::ASTContext & Context, const clang::Expr * Converted, clang::APValue & ConstantValue, clang::QualType & ConstantType, bool IgnoreFloatToIntegralConversion = false) const
- public clang::ImplicitConversionRank getRank() const
- public clang::QualType getToType(unsigned int Idx) const
- public bool isIdentityConversion() const
- public bool isPointerConversionToBool() const
- public bool isPointerConversionToVoidPointer(clang::ASTContext & Context) const
- public void setAllToTypes(clang::QualType T)
- public void setAsIdentityConversion()
- public void setFromType(clang::QualType T)
- public void setToType(unsigned int Idx, clang::QualType T)
Methods
¶void dump() const
void dump() const
Declared at: clang/include/clang/Sema/Overload.h:368
¶clang::QualType getFromType() const
clang::QualType getFromType() const
Declared at: clang/include/clang/Sema/Overload.h:346
¶clang::NarrowingKind getNarrowingKind(
clang::ASTContext& Context,
const clang::Expr* Converted,
clang::APValue& ConstantValue,
clang::QualType& ConstantType,
bool IgnoreFloatToIntegralConversion =
false) const
clang::NarrowingKind getNarrowingKind(
clang::ASTContext& Context,
const clang::Expr* Converted,
clang::APValue& ConstantValue,
clang::QualType& ConstantType,
bool IgnoreFloatToIntegralConversion =
false) const
Declared at: clang/include/clang/Sema/Overload.h:363
Parameters
- clang::ASTContext& Context
- const clang::Expr* Converted
- clang::APValue& ConstantValue
- clang::QualType& ConstantType
- bool IgnoreFloatToIntegralConversion = false
¶clang::ImplicitConversionRank getRank() const
clang::ImplicitConversionRank getRank() const
Declared at: clang/include/clang/Sema/Overload.h:361
¶clang::QualType getToType(unsigned int Idx) const
clang::QualType getToType(unsigned int Idx) const
Declared at: clang/include/clang/Sema/Overload.h:350
Parameters
- unsigned int Idx
¶bool isIdentityConversion() const
bool isIdentityConversion() const
Declared at: clang/include/clang/Sema/Overload.h:357
¶bool isPointerConversionToBool() const
bool isPointerConversionToBool() const
Declared at: clang/include/clang/Sema/Overload.h:366
¶bool isPointerConversionToVoidPointer(
clang::ASTContext& Context) const
bool isPointerConversionToVoidPointer(
clang::ASTContext& Context) const
Declared at: clang/include/clang/Sema/Overload.h:367
Parameters
- clang::ASTContext& Context
¶void setAllToTypes(clang::QualType T)
void setAllToTypes(clang::QualType T)
Declared at: clang/include/clang/Sema/Overload.h:340
Parameters
¶void setAsIdentityConversion()
void setAsIdentityConversion()
Declared at: clang/include/clang/Sema/Overload.h:355
¶void setFromType(clang::QualType T)
void setFromType(clang::QualType T)
Declared at: clang/include/clang/Sema/Overload.h:333
Parameters
¶void setToType(unsigned int Idx,
clang::QualType T)
void setToType(unsigned int Idx,
clang::QualType T)
Declared at: clang/include/clang/Sema/Overload.h:335
Parameters
- unsigned int Idx
- clang::QualType T