|
5889 | 5889 | For a function template specialization, a member function template
|
5890 | 5890 | specialization, or a specialization for a member function or static data member
|
5891 | 5891 | of a class template,
|
5892 |
| -if the specialization is implicitly instantiated because it is referenced |
5893 |
| -from within another template specialization and |
5894 |
| -the context from which it is referenced depends on a template parameter, |
5895 | 5892 | the point of instantiation of the specialization is the point of instantiation
|
5896 |
| -of the enclosing specialization. |
| 5893 | +of the enclosing specialization if |
| 5894 | +\begin{itemize} |
| 5895 | +\item the specialization is implicitly instantiated |
| 5896 | +because it is referenced from within another template specialization and |
| 5897 | + |
| 5898 | +\item the context from which it is referenced depends on a template parameter. |
| 5899 | +\end{itemize} |
| 5900 | + |
5897 | 5901 | Otherwise, the point of instantiation for such a specialization immediately
|
5898 | 5902 | follows the namespace scope declaration
|
5899 | 5903 | or definition that refers to the specialization.
|
|
5907 | 5911 |
|
5908 | 5912 | \pnum
|
5909 | 5913 | For a \grammarterm{noexcept-specifier} of a function template
|
5910 |
| -specialization or specialization of a member function of a class template, if |
5911 |
| -the \grammarterm{noexcept-specifier} is implicitly instantiated because |
5912 |
| -it is needed by another template specialization and the context that requires |
5913 |
| -it depends on a template parameter, the point of instantiation of the |
| 5914 | +specialization or specialization of a member function of a class template, |
| 5915 | +the point of instantiation of the |
5914 | 5916 | \grammarterm{noexcept-specifier} is the point of instantiation of the
|
5915 |
| -specialization that requires it. Otherwise, the point of instantiation for such |
| 5917 | +specialization that requires it if |
| 5918 | +\begin{itemize} |
| 5919 | +\item the \grammarterm{noexcept-specifier} is implicitly instantiated |
| 5920 | +because it is needed by another template specialization and |
| 5921 | + |
| 5922 | +\item the context that requires it depends on a template parameter. |
| 5923 | +\end{itemize} |
| 5924 | + |
| 5925 | +Otherwise, the point of instantiation for such |
5916 | 5926 | a \grammarterm{noexcept-specifier} immediately follows the namespace
|
5917 | 5927 | scope declaration or definition that requires the
|
5918 | 5928 | \grammarterm{noexcept-specifier}.
|
5919 | 5929 |
|
5920 |
| - |
5921 |
| - |
5922 | 5930 | \pnum
|
5923 | 5931 | For a class template specialization, a class member template specialization,
|
5924 | 5932 | or a specialization for a class member of a class template,
|
5925 |
| -if the specialization is implicitly instantiated because it is referenced |
5926 |
| -from within another template specialization, |
5927 |
| -if the context from which the specialization is referenced depends on a |
5928 |
| -template parameter, |
5929 |
| -and if the specialization is not instantiated previous to the instantiation of |
5930 |
| -the enclosing template, |
5931 | 5933 | the point of instantiation is immediately before the point of instantiation of
|
5932 |
| -the enclosing template. |
| 5934 | +the enclosing template if |
| 5935 | +\begin{itemize} |
| 5936 | +\item the specialization is implicitly instantiated |
| 5937 | +because it is referenced from within another template specialization, |
| 5938 | + |
| 5939 | +\item the context from which the specialization is referenced |
| 5940 | +depends on a template parameter, and |
| 5941 | + |
| 5942 | +\item the specialization is not instantiated |
| 5943 | +previous to the instantiation of the enclosing template. |
| 5944 | +\end{itemize} |
| 5945 | + |
5933 | 5946 | Otherwise, the point of instantiation for such a specialization immediately
|
5934 | 5947 | precedes the namespace scope declaration
|
5935 | 5948 | or definition that refers to the specialization.
|
|
0 commit comments