enum TemplateDeductionFlags

Description

Various flags that control template argument deduction. These flags can be bitwise-OR'd together.

Declared at: clang/lib/Sema/SemaTemplateDeduction.cpp:65

Enumerators

NameValueComment
TDF_None0No template argument deduction flags, which indicates the strictest results for template argument deduction (as used for, e.g., matching class template partial specializations).
TDF_ParamWithReferenceType1Within template argument deduction from a function call, we are matching with a parameter type for which the original parameter was a reference.
TDF_IgnoreQualifiers2Within template argument deduction from a function call, we are matching in a case where we ignore cv-qualifiers.
TDF_DerivedClass4Within template argument deduction from a function call, we are matching in a case where we can perform template argument deduction from a template-id of a derived class of the argument type.
TDF_SkipNonDependent8Allow non-dependent types to differ, e.g., when performing template argument deduction from a function call where conversions may apply.
TDF_TopLevelParameterTypeList16Whether we are performing template argument deduction for parameters and arguments in a top-level template argument
TDF_AllowCompatibleFunctionType32Within template argument deduction from overload resolution per C++ [over.over] allow matching function types that are compatible in terms of noreturn and default calling convention adjustments, or similarly matching a declared template specialization against a possible template, per C++ [temp.deduct.decl]. In either case, permit deduction where the parameter is a function type that can be converted to the argument type.
TDF_ArgWithReferenceType64Within template argument deduction for a conversion function, we are matching with an argument type for which the original argument was a reference.