|
5313 | 5313 | For a function template specialization, a member function template
|
5314 | 5314 | specialization, or a specialization for a member function or static data member
|
5315 | 5315 | of a class template,
|
5316 |
| -if the specialization is implicitly instantiated because it is referenced |
5317 |
| -from within another template specialization and |
5318 |
| -the context from which it is referenced depends on a template parameter, |
5319 | 5316 | the point of instantiation of the specialization is the point of instantiation
|
5320 |
| -of the enclosing specialization. |
| 5317 | +of the enclosing specialization if |
| 5318 | +\begin{itemize} |
| 5319 | +\item the specialization is implicitly instantiated because it is referenced |
| 5320 | +from within another template specialization, and |
| 5321 | + |
| 5322 | +\item the context from which it is referenced depends on a template parameter. |
| 5323 | +\end{itemize} |
| 5324 | + |
5321 | 5325 | Otherwise, the point of instantiation for such a specialization immediately
|
5322 | 5326 | follows the namespace scope declaration
|
5323 | 5327 | or definition that refers to the specialization.
|
|
5331 | 5335 |
|
5332 | 5336 | \pnum
|
5333 | 5337 | For a \grammarterm{noexcept-specifier} of a function template
|
5334 |
| -specialization or specialization of a member function of a class template, if |
5335 |
| -the \grammarterm{noexcept-specifier} is implicitly instantiated because |
5336 |
| -it is needed by another template specialization and the context that requires |
5337 |
| -it depends on a template parameter, the point of instantiation of the |
| 5338 | +specialization or specialization of a member function of a class template, |
| 5339 | +the point of instantiation of the |
5338 | 5340 | \grammarterm{noexcept-specifier} is the point of instantiation of the
|
5339 |
| -specialization that requires it. Otherwise, the point of instantiation for such |
| 5341 | +specialization that requires it if |
| 5342 | +\begin{itemize} |
| 5343 | +\item the \grammarterm{noexcept-specifier} is implicitly instantiated because |
| 5344 | +it is needed by another template specialization, and |
| 5345 | + |
| 5346 | +\item the context that requires |
| 5347 | +it depends on a template parameter. |
| 5348 | +\end{itemize} |
| 5349 | + |
| 5350 | +Otherwise, the point of instantiation for such |
5340 | 5351 | a \grammarterm{noexcept-specifier} immediately follows the namespace
|
5341 | 5352 | scope declaration or definition that requires the
|
5342 | 5353 | \grammarterm{noexcept-specifier}.
|
5343 | 5354 |
|
5344 |
| - |
5345 |
| - |
5346 | 5355 | \pnum
|
5347 | 5356 | For a class template specialization, a class member template specialization,
|
5348 | 5357 | or a specialization for a class member of a class template,
|
5349 |
| -if the specialization is implicitly instantiated because it is referenced |
5350 |
| -from within another template specialization, |
5351 |
| -if the context from which the specialization is referenced depends on a |
5352 |
| -template parameter, |
5353 |
| -and if the specialization is not instantiated previous to the instantiation of |
5354 |
| -the enclosing template, |
5355 | 5358 | the point of instantiation is immediately before the point of instantiation of
|
| 5359 | +the enclosing template if |
| 5360 | +\begin{itemize} |
| 5361 | +\item the specialization is implicitly instantiated because it is referenced |
| 5362 | +from within another template specialization, and |
| 5363 | + |
| 5364 | +\item the context from which the specialization is referenced depends on a |
| 5365 | +template parameter, and |
| 5366 | + |
| 5367 | +\item the specialization is not instantiated previous to the instantiation of |
5356 | 5368 | the enclosing template.
|
| 5369 | +\end{itemize} |
| 5370 | + |
5357 | 5371 | Otherwise, the point of instantiation for such a specialization immediately
|
5358 | 5372 | precedes the namespace scope declaration
|
5359 | 5373 | or definition that refers to the specialization.
|
|
0 commit comments