clang API Documentation

Public Member Functions | Public Attributes
clang::UserDefinedConversionSequence Struct Reference

#include <Overload.h>

Collaboration diagram for clang::UserDefinedConversionSequence:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void DebugPrint () const

Public Attributes

StandardConversionSequence Before
 Represents the standard conversion that occurs before the actual user-defined conversion.
bool EllipsisConversion: 1
bool HadMultipleCandidates: 1
StandardConversionSequence After
FunctionDeclConversionFunction
DeclAccessPair FoundConversionFunction
 The declaration that we found via name lookup, which might be the same as ConversionFunction or it might be a using declaration that refers to ConversionFunction.

Detailed Description

UserDefinedConversionSequence - Represents a user-defined conversion sequence (C++ 13.3.3.1.2).

Definition at line 248 of file Overload.h.


Member Function Documentation

void clang::UserDefinedConversionSequence::DebugPrint ( ) const

DebugPrint - Print this user-defined conversion sequence to standard error. Useful for debugging overloading issues.

Definition at line 469 of file SemaOverload.cpp.

References clang::frontend::After.


Member Data Documentation

Represents the standard conversion that occurs before the actual user-defined conversion.

C++11 13.3.3.1.2p1: If the user-defined conversion is specified by a constructor (12.3.1), the initial standard conversion sequence converts the source type to the type required by the argument of the constructor. If the user-defined conversion is specified by a conversion function (12.3.2), the initial standard conversion sequence converts the source type to the implicit object parameter of the conversion function.

Definition at line 260 of file Overload.h.

Referenced by clang::Sema::AddSurrogateCandidate(), clang::FindConversionForRefInit(), clang::IsInitializerListConstructorConversion(), clang::IsUserDefinedConversion(), clang::Sema::PerformImplicitConversion(), and clang::TryListConversion().

ConversionFunction - The function that will perform the user-defined conversion. Null if the conversion is an aggregate initialization from an initializer list.

Definition at line 282 of file Overload.h.

Referenced by clang::Sema::AddSurrogateCandidate(), clang::CompareImplicitConversionSequences(), clang::FindConversionForRefInit(), clang::IsInitializerListConstructorConversion(), clang::IsUserDefinedConversion(), clang::Sema::PerformImplicitConversion(), clang::TryListConversion(), and clang::TryUserDefinedConversion().

EllipsisConversion - When this is true, it means user-defined conversion sequence starts with a ... (elipsis) conversion, instead of a standard conversion. In this case, 'Before' field must be ignored.

Definition at line 268 of file Overload.h.

Referenced by clang::Sema::AddSurrogateCandidate(), clang::FindConversionForRefInit(), clang::IsUserDefinedConversion(), and clang::Sema::PerformImplicitConversion().

The declaration that we found via name lookup, which might be the same as ConversionFunction or it might be a using declaration that refers to ConversionFunction.

Definition at line 287 of file Overload.h.

Referenced by clang::Sema::AddSurrogateCandidate(), clang::FindConversionForRefInit(), clang::IsInitializerListConstructorConversion(), clang::IsUserDefinedConversion(), and clang::Sema::PerformImplicitConversion().

HadMultipleCandidates - When this is true, it means that the conversion function was resolved from an overloaded set having size greater than 1.

Definition at line 273 of file Overload.h.

Referenced by clang::Sema::AddSurrogateCandidate(), clang::FindConversionForRefInit(), clang::IsInitializerListConstructorConversion(), clang::IsUserDefinedConversion(), and clang::Sema::PerformImplicitConversion().


The documentation for this struct was generated from the following files: