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

Methods

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()

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

ImplicitConversionSequence(
    const clang::ImplicitConversionSequence&
        Other)

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

Parameters

const clang::ImplicitConversionSequence& Other

void destruct()

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

void dump() const

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

clang::QualType getInitializerListContainerType()
    const

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

clang::ImplicitConversionSequence::Kind getKind()
    const

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

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)

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

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

bool isAmbiguous() const

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

bool isBad() const

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

bool isEllipsis() const

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

bool isFailure() const

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

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

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

bool isStandard() const

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

bool isUserDefined() const

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

void setAmbiguous()

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

void setAsIdentityConversion(clang::QualType T)

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

Parameters

clang::QualType T

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)

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()

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

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)

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

Parameters

clang::ImplicitConversionSequence::Kind K

void setStandard()

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

void setUserDefined()

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

~ImplicitConversionSequence()

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