|
1573 | 1573 | \pnum
|
1574 | 1574 | When resolving a placeholder for a deduced class type\iref{dcl.type.simple}
|
1575 | 1575 | where the \grammarterm{template-name} names an alias template \tcode{A},
|
1576 |
| -the \grammarterm{defining-type-id} must be of the form |
| 1576 | +the \grammarterm{defining-type-id} of \tcode{A} must be of the form |
1577 | 1577 | \begin{ncsimplebnf}
|
1578 | 1578 | \opt{\keyword{typename}} \opt{nested-name-specifier} \opt{\keyword{template}} simple-template-id
|
1579 | 1579 | \end{ncsimplebnf}
|
|
1587 | 1587 | according to the following procedure and add it to the set:
|
1588 | 1588 | \begin{itemize}
|
1589 | 1589 | \item
|
1590 |
| - Deduce the template arguments of the return type of \tcode{f} |
| 1590 | + The template arguments of the return type of \tcode{f} |
| 1591 | + are deduced |
1591 | 1592 | from the \grammarterm{defining-type-id} of \tcode{A}
|
1592 | 1593 | according to the process in \ref{temp.deduct.type}
|
1593 | 1594 | with the exception that deduction does not fail
|
1594 | 1595 | if not all template arguments are deduced.
|
1595 | 1596 | Let \tcode{g} denote the result of substituting
|
1596 | 1597 | these deductions into \tcode{f}.
|
1597 | 1598 | If the substitution fails, no \tcode{f'} is produced.
|
1598 |
| - Form the function or function template \tcode{f'} as follows: |
| 1599 | + Otherwise, the function or function template \tcode{f'} is formed as follows: |
1599 | 1600 | \begin{itemize}
|
1600 | 1601 | \item
|
1601 | 1602 | The function type of \tcode{f'} is the function type of \tcode{g}.
|
1602 | 1603 | \item
|
1603 | 1604 | If \tcode{f} is a function template,
|
1604 |
| - the template parameter list of \tcode{f'} consists of |
| 1605 | + \tcode{f'} is a function template whose |
| 1606 | + template parameter list consists of |
1605 | 1607 | all the template parameters of \tcode{A}
|
1606 | 1608 | (including their default template arguments)
|
1607 | 1609 | that appear in the above deductions or
|
1608 | 1610 | (recursively) in their default template arguments,
|
1609 | 1611 | followed by the template parameters of \tcode{f} that were not deduced
|
1610 |
| - (including their default template arguments). |
| 1612 | + (including their default template arguments), |
| 1613 | + otherwise \tcode{f'} is not a function template. |
1611 | 1614 | \item
|
1612 | 1615 | The associated constraints\iref{temp.constr.decl} are
|
1613 | 1616 | the conjunction of the associated constraints of \tcode{g} and
|
|
0 commit comments