enum Sema::TemplateDeductionResult
Description
Describes the result of template argument deduction. The TemplateDeductionResult enumeration describes the result of template argument deduction, as returned from DeduceTemplateArguments(). The separate TemplateDeductionInfo structure provides additional information about the results of template argument deduction, e.g., the deduced template argument list (if successful) or the specific template parameters or deduced arguments that were involved in the failure.
Declared at: clang/include/clang/Sema/Sema.h:8694
Enumerators
Name | Value | Comment |
---|---|---|
TDK_Success | 0 | Template argument deduction was successful. |
TDK_Invalid | 1 | The declaration was invalid; do nothing. |
TDK_InstantiationDepth | 2 | Template argument deduction exceeded the maximum template instantiation depth (which has already been diagnosed). |
TDK_Incomplete | 3 | Template argument deduction did not deduce a value for every template parameter. |
TDK_IncompletePack | 4 | Template argument deduction did not deduce a value for every expansion of an expanded template parameter pack. |
TDK_Inconsistent | 5 | Template argument deduction produced inconsistent deduced values for the given template parameter. |
TDK_Underqualified | 6 | Template argument deduction failed due to inconsistent cv-qualifiers on a template parameter type that would otherwise be deduced, e.g., we tried to deduce T in "const T" but were given a non-const "X". |
TDK_SubstitutionFailure | 7 | Substitution of the deduced template argument values resulted in an error. |
TDK_DeducedMismatch | 8 | After substituting deduced template arguments, a dependent parameter type did not match the corresponding argument. |
TDK_DeducedMismatchNested | 9 | After substituting deduced template arguments, an element of a dependent parameter type did not match the corresponding element of the corresponding argument (when deducing from an initializer list). |
TDK_NonDeducedMismatch | 10 | A non-depnedent component of the parameter did not match the corresponding component of the argument. |
TDK_TooManyArguments | 11 | When performing template argument deduction for a function template, there were too many call arguments. |
TDK_TooFewArguments | 12 | When performing template argument deduction for a function template, there were too few call arguments. |
TDK_InvalidExplicitArguments | 13 | The explicitly-specified template arguments were not valid template arguments for the given template. |
TDK_NonDependentConversionFailure | 14 | Checking non-dependent argument conversions failed. |
TDK_ConstraintsNotSatisfied | 15 | The deduced arguments did not satisfy the constraints associated with the template. |
TDK_MiscellaneousDeductionFailure | 16 | Deduction failed; that's all we know. |
TDK_CUDATargetMismatch | 17 | CUDA Target attributes do not match. |