|
7130 | 7130 | obtained from default arguments are substituted.
|
7131 | 7131 |
|
7132 | 7132 | \pnum
|
7133 |
| -The substitution occurs in all types and expressions that are used in the function |
7134 |
| -type and in template parameter declarations. The expressions include not only |
| 7133 | +\indextext{deduction!deduction substitution loci}% |
| 7134 | +The \defn{deduction substitution loci} are |
| 7135 | +\begin{itemize} |
| 7136 | +\item the function type outside of the \grammarterm{noexcept-specifier}, |
| 7137 | +\item the \grammarterm{explicit-specifier}, and |
| 7138 | +\item the template parameter declarations. |
| 7139 | +\end{itemize} |
| 7140 | +The substitution occurs in all types and expressions that are used |
| 7141 | +in the deduction substitution loci. |
| 7142 | +The expressions include not only |
7135 | 7143 | constant expressions such as those that appear in array bounds or as nontype
|
7136 | 7144 | template arguments but also general expressions (i.e., non-constant expressions)
|
7137 | 7145 | inside \tcode{sizeof}, \keyword{decltype}, and other contexts that allow non-constant
|
|
7175 | 7183 | as part of the substitution
|
7176 | 7184 | process.
|
7177 | 7185 | \end{note}
|
7178 |
| -Only invalid types and expressions in the immediate context of |
7179 |
| -the function type, |
7180 |
| -its template parameter types, |
7181 |
| -and its \grammarterm{explicit-specifier} |
7182 |
| -can result in a deduction failure. |
| 7186 | +Invalid types and expressions can result in a deduction failure |
| 7187 | +only in the immediate context of the deduction substitution loci. |
7183 | 7188 | \begin{note}
|
7184 | 7189 | The substitution into types and expressions can result
|
7185 | 7190 | in effects such as the instantiation of class template specializations and/or
|
|
0 commit comments