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

Methods

void dump() const

Declared at: clang/include/clang/Sema/Overload.h:368

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

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

Declared at: clang/include/clang/Sema/Overload.h:361

clang::QualType getToType(unsigned int Idx) const

Declared at: clang/include/clang/Sema/Overload.h:350

Parameters

unsigned int Idx

bool isIdentityConversion() const

Declared at: clang/include/clang/Sema/Overload.h:357

bool isPointerConversionToBool() const

Declared at: clang/include/clang/Sema/Overload.h:366

bool isPointerConversionToVoidPointer(
    clang::ASTContext& Context) const

Declared at: clang/include/clang/Sema/Overload.h:367

Parameters

clang::ASTContext& Context

void setAllToTypes(clang::QualType T)

Declared at: clang/include/clang/Sema/Overload.h:340

Parameters

clang::QualType T

void setAsIdentityConversion()

Declared at: clang/include/clang/Sema/Overload.h:355

void setFromType(clang::QualType T)

Declared at: clang/include/clang/Sema/Overload.h:333

Parameters

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