clang 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
Overload.h File Reference
#include "clang/AST/Decl.h"
#include "clang/AST/DeclAccessPair.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/Type.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Sema/SemaFixItUtils.h"
#include "clang/Sema/TemplateDeduction.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/AlignOf.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <utility>

Go to the source code of this file.

Classes

class  clang::StandardConversionSequence
 StandardConversionSequence - represents a standard conversion sequence (C++ 13.3.3.1.1). More...
 
struct  clang::UserDefinedConversionSequence
 UserDefinedConversionSequence - Represents a user-defined conversion sequence (C++ 13.3.3.1.2). More...
 
struct  clang::AmbiguousConversionSequence
 Represents an ambiguous user-defined conversion sequence. More...
 
struct  clang::BadConversionSequence
 BadConversionSequence - Records information about an invalid conversion sequence. More...
 
class  clang::ImplicitConversionSequence
 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). More...
 
struct  clang::OverloadCandidate
 OverloadCandidate - A single candidate in an overload set (C++ 13.3). More...
 
class  clang::OverloadCandidateSet
 OverloadCandidateSet - A set of overload candidates, used in C++ overload resolution (C++ 13.3). More...
 
struct  clang::OverloadCandidateSet::OperatorRewriteInfo
 Information about operator rewrites to consider when adding operator functions to a candidate set. More...
 
struct  clang::ConstructorInfo
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 

Typedefs

using clang::ConversionSequenceList = llvm::MutableArrayRef< ImplicitConversionSequence >
 A list of implicit conversion sequences for the arguments of an OverloadCandidate.
 

Enumerations

enum  clang::OverloadingResult { clang::OR_Success , clang::OR_No_Viable_Function , clang::OR_Ambiguous , clang::OR_Deleted }
 OverloadingResult - Capture the result of performing overload resolution. More...
 
enum  clang::OverloadCandidateDisplayKind { clang::OCD_AllCandidates , clang::OCD_ViableCandidates , clang::OCD_AmbiguousCandidates }
 
enum class  clang::OverloadCandidateParamOrder : char { clang::Normal , clang::Reversed }
 The parameter ordering that will be used for the candidate. More...
 
enum  clang::OverloadCandidateRewriteKind : unsigned { clang::CRK_None = 0x0 , clang::CRK_DifferentOperator = 0x1 , clang::CRK_Reversed = 0x2 }
 The kinds of rewrite we perform on overload candidates. More...
 
enum  clang::ImplicitConversionKind {
  clang::ICK_Identity = 0 , clang::ICK_Lvalue_To_Rvalue , clang::ICK_Array_To_Pointer , clang::ICK_Function_To_Pointer ,
  clang::ICK_Function_Conversion , clang::ICK_Qualification , clang::ICK_Integral_Promotion , clang::ICK_Floating_Promotion ,
  clang::ICK_Complex_Promotion , clang::ICK_Integral_Conversion , clang::ICK_Floating_Conversion , clang::ICK_Complex_Conversion ,
  clang::ICK_Floating_Integral , clang::ICK_Pointer_Conversion , clang::ICK_Pointer_Member , clang::ICK_Boolean_Conversion ,
  clang::ICK_Compatible_Conversion , clang::ICK_Derived_To_Base , clang::ICK_Vector_Conversion , clang::ICK_SVE_Vector_Conversion ,
  clang::ICK_RVV_Vector_Conversion , clang::ICK_Vector_Splat , clang::ICK_Complex_Real , clang::ICK_Block_Pointer_Conversion ,
  clang::ICK_TransparentUnionConversion , clang::ICK_Writeback_Conversion , clang::ICK_Zero_Event_Conversion , clang::ICK_Zero_Queue_Conversion ,
  clang::ICK_C_Only_Conversion , clang::ICK_Incompatible_Pointer_Conversion , clang::ICK_Fixed_Point_Conversion , clang::ICK_HLSL_Vector_Truncation ,
  clang::ICK_HLSL_Array_RValue , clang::ICK_HLSL_Vector_Splat , clang::ICK_Num_Conversion_Kinds
}
 ImplicitConversionKind - The kind of implicit conversion used to convert an argument to a parameter's type. More...
 
enum  clang::ImplicitConversionRank {
  clang::ICR_Exact_Match = 0 , clang::ICR_HLSL_Scalar_Widening , clang::ICR_Promotion , clang::ICR_HLSL_Scalar_Widening_Promotion ,
  clang::ICR_HLSL_Dimension_Reduction , clang::ICR_Conversion , clang::ICR_OCL_Scalar_Widening , clang::ICR_HLSL_Scalar_Widening_Conversion ,
  clang::ICR_Complex_Real_Conversion , clang::ICR_Writeback_Conversion , clang::ICR_C_Conversion , clang::ICR_C_Conversion_Extension ,
  clang::ICR_HLSL_Dimension_Reduction_Promotion , clang::ICR_HLSL_Dimension_Reduction_Conversion
}
 ImplicitConversionRank - The rank of an implicit conversion kind. More...
 
enum  clang::NarrowingKind {
  clang::NK_Not_Narrowing , clang::NK_Type_Narrowing , clang::NK_Constant_Narrowing , clang::NK_Variable_Narrowing ,
  clang::NK_Dependent_Narrowing
}
 NarrowingKind - The kind of narrowing conversion being performed by a standard conversion sequence according to C++11 [dcl.init.list]p7. More...
 
enum  clang::OverloadFailureKind {
  clang::ovl_fail_too_many_arguments , clang::ovl_fail_too_few_arguments , clang::ovl_fail_bad_conversion , clang::ovl_fail_bad_deduction ,
  clang::ovl_fail_trivial_conversion , clang::ovl_fail_illegal_constructor , clang::ovl_fail_bad_final_conversion , clang::ovl_fail_final_conversion_not_exact ,
  clang::ovl_fail_bad_target , clang::ovl_fail_enable_if , clang::ovl_fail_explicit , clang::ovl_fail_addr_not_available ,
  clang::ovl_fail_inhctor_slice , clang::ovl_non_default_multiversion_function , clang::ovl_fail_object_addrspace_mismatch , clang::ovl_fail_constraints_not_satisfied ,
  clang::ovl_fail_module_mismatched
}
 

Functions

ImplicitConversionRank clang::GetConversionRank (ImplicitConversionKind Kind)
 GetConversionRank - Retrieve the implicit conversion rank corresponding to the given implicit conversion kind.
 
ImplicitConversionRank clang::GetDimensionConversionRank (ImplicitConversionRank Base, ImplicitConversionKind Dimension)
 
bool clang::isBetterOverloadCandidate (Sema &S, const OverloadCandidate &Cand1, const OverloadCandidate &Cand2, SourceLocation Loc, OverloadCandidateSet::CandidateSetKind Kind)
 isBetterOverloadCandidate - Determines whether the first overload candidate is a better candidate than the second (C++ 13.3.3p1).
 
ConstructorInfo clang::getConstructorInfo (NamedDecl *ND)
 
bool clang::shouldEnforceArgLimit (bool PartialOverloading, FunctionDecl *Function)