|
6094 | 6094 | For a function template specialization, a member function template
|
6095 | 6095 | specialization, or a specialization for a member function or static data member
|
6096 | 6096 | of a class template,
|
6097 |
| -if the specialization is implicitly instantiated because it is referenced |
6098 |
| -from within another template specialization and |
6099 |
| -the context from which it is referenced depends on a template parameter, |
6100 | 6097 | the point of instantiation of the specialization is the point of instantiation
|
6101 |
| -of the enclosing specialization. |
| 6098 | +of the enclosing specialization if |
| 6099 | +\begin{itemize} |
| 6100 | +\item the specialization is implicitly instantiated |
| 6101 | +because it is referenced from within another template specialization and |
| 6102 | + |
| 6103 | +\item the context from which it is referenced depends on a template parameter. |
| 6104 | +\end{itemize} |
| 6105 | + |
6102 | 6106 | Otherwise, the point of instantiation for such a specialization immediately
|
6103 | 6107 | follows the namespace scope declaration
|
6104 | 6108 | or definition that refers to the specialization.
|
|
6112 | 6116 |
|
6113 | 6117 | \pnum
|
6114 | 6118 | For a \grammarterm{noexcept-specifier} of a function template
|
6115 |
| -specialization or specialization of a member function of a class template, if |
6116 |
| -the \grammarterm{noexcept-specifier} is implicitly instantiated because |
6117 |
| -it is needed by another template specialization and the context that requires |
6118 |
| -it depends on a template parameter, the point of instantiation of the |
| 6119 | +specialization or specialization of a member function of a class template, |
| 6120 | +the point of instantiation of the |
6119 | 6121 | \grammarterm{noexcept-specifier} is the point of instantiation of the
|
6120 |
| -specialization that requires it. Otherwise, the point of instantiation for such |
| 6122 | +specialization that requires it if |
| 6123 | +\begin{itemize} |
| 6124 | +\item the \grammarterm{noexcept-specifier} is implicitly instantiated |
| 6125 | +because it is needed by another template specialization and |
| 6126 | + |
| 6127 | +\item the context that requires it depends on a template parameter. |
| 6128 | +\end{itemize} |
| 6129 | + |
| 6130 | +Otherwise, the point of instantiation for such |
6121 | 6131 | a \grammarterm{noexcept-specifier} immediately follows the namespace
|
6122 | 6132 | scope declaration or definition that requires the
|
6123 | 6133 | \grammarterm{noexcept-specifier}.
|
6124 | 6134 |
|
6125 | 6135 | \pnum
|
6126 | 6136 | For a class template specialization, a class member template specialization,
|
6127 | 6137 | or a specialization for a class member of a class template,
|
6128 |
| -if the specialization is implicitly instantiated because it is referenced |
6129 |
| -from within another template specialization, |
6130 |
| -if the context from which the specialization is referenced depends on a |
6131 |
| -template parameter, |
6132 |
| -and if the specialization is not instantiated previous to the instantiation of |
6133 |
| -the enclosing template, |
6134 | 6138 | the point of instantiation is immediately before the point of instantiation of
|
6135 |
| -the enclosing template. |
| 6139 | +the enclosing template if |
| 6140 | +\begin{itemize} |
| 6141 | +\item the specialization is implicitly instantiated |
| 6142 | +because it is referenced from within another template specialization, |
| 6143 | + |
| 6144 | +\item the context from which the specialization is referenced |
| 6145 | +depends on a template parameter, and |
| 6146 | + |
| 6147 | +\item the specialization is not instantiated |
| 6148 | +previous to the instantiation of the enclosing template. |
| 6149 | +\end{itemize} |
| 6150 | + |
6136 | 6151 | Otherwise, the point of instantiation for such a specialization immediately
|
6137 | 6152 | precedes the namespace scope declaration
|
6138 | 6153 | or definition that refers to the specialization.
|
|
0 commit comments