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
Name | Value | Comment |
---|---|---|
TDF_None | 0 | No template argument deduction flags, which indicates the strictest results for template argument deduction (as used for, e.g., matching class template partial specializations). |
TDF_ParamWithReferenceType | 1 | Within template argument deduction from a function call, we are matching with a parameter type for which the original parameter was a reference. |
TDF_IgnoreQualifiers | 2 | Within template argument deduction from a function call, we are matching in a case where we ignore cv-qualifiers. |
TDF_DerivedClass | 4 | Within 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_SkipNonDependent | 8 | Allow non-dependent types to differ, e.g., when performing template argument deduction from a function call where conversions may apply. |
TDF_TopLevelParameterTypeList | 16 | Whether we are performing template argument deduction for parameters and arguments in a top-level template argument |
TDF_AllowCompatibleFunctionType | 32 | Within 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_ArgWithReferenceType | 64 | Within template argument deduction for a conversion function, we are matching with an argument type for which the original argument was a reference. |