Skip to content

Commit c90d634

Browse files
committed
Forward changes for Motion 3
1 parent 034a3bc commit c90d634

File tree

4 files changed

+19
-21
lines changed

4 files changed

+19
-21
lines changed

source/basic.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2654,7 +2654,7 @@
26542654
\end{itemize}
26552655
\begin{note}
26562656
There are other circumstances in which declarations declare the same entity
2657-
(\ref{dcl.link}, \ref{temp.type}, \ref{temp.class.spec}).
2657+
(\ref{dcl.link}, \ref{temp.type}, \ref{temp.spec.partial}).
26582658
\end{note}
26592659

26602660
\pnum

source/classes.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6755,7 +6755,7 @@
67556755

67566756
\pnum
67576757
Access to the deallocation function is checked statically,
6758-
even if a different one is actually be executed.
6758+
even if a different one is actually executed.
67596759
\begin{example}
67606760
For the call on line ``// 1'' above,
67616761
if

source/expressions.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1560,7 +1560,7 @@
15601560
$H$ shall be equivalent to
15611561
the \grammarterm{template-head} of $T$\iref{temp.over.link}.
15621562
\item
1563-
Otherwise, $N$ nominates the partial specialization\iref{temp.class.spec} of $T$
1563+
Otherwise, $N$ nominates the partial specialization\iref{temp.spec.partial} of $T$
15641564
whose template argument list is equivalent to $A$\iref{temp.over.link};
15651565
the program is ill-formed if no such partial specialization exists.
15661566
\end{itemize}

source/templates.tex

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@
116116
In a function template declaration, the \grammarterm{unqualified-id} of the
117117
\grammarterm{declarator-id} shall be a name.
118118
\begin{note}
119-
In a class template declaration, if the \grammarterm{class-name}
119+
In a class or variable template declaration, if the
120+
declared name
120121
is a
121122
\grammarterm{simple-template-id},
122123
the declaration declares a partial specialization\iref{temp.spec.partial}.
@@ -135,8 +136,8 @@
135136
\indextext{template name!linkage of}%
136137
A specialization (explicit or implicit) of one template is
137138
distinct from all specializations of any other template.
138-
A template, a template explicit specialization\iref{temp.expl.spec}, and a class
139-
template partial specialization shall not have C language linkage.
139+
A template, an explicit specialization\iref{temp.expl.spec}, and a
140+
partial specialization shall not have C language linkage.
140141
\begin{note}
141142
Default arguments for function templates and for member functions of
142143
class templates are considered definitions for the purpose of template
@@ -149,7 +150,7 @@
149150
name bound in the same scope\iref{basic.scope.scope}, except
150151
that a function template can share a name with non-template
151152
functions\iref{dcl.fct} and/or function templates\iref{temp.over}.
152-
Specializations, including partial specializations\iref{temp.class.spec},
153+
Specializations, including partial specializations\iref{temp.spec.partial},
153154
do not reintroduce or bind names.
154155
Their target scope is the target scope of the primary template,
155156
so all specializations of a template belong to the same scope as it does.
@@ -2161,7 +2162,7 @@
21612162
A template declaration in which the name of the template is followed by
21622163
a \grammarterm{template-argument-list} is
21632164
a partial specialization of
2164-
the template named in the declaration\iref{temp.class.spec}.
2165+
the template named in the declaration\iref{temp.spec.partial}.
21652166

21662167
\pnum
21672168
For purposes of name lookup and instantiation,
@@ -3129,23 +3130,21 @@
31293130

31303131
\pnum
31313132
\indextext{specialization!class template partial}%
3132-
A partial specialization of a class template provides an alternative definition
3133+
A partial specialization of a template provides an alternative definition
31333134
of the template that is used instead of the primary definition when the
31343135
arguments in a specialization match those given in the partial
3135-
specialization\iref{temp.class.spec.match}.
3136+
specialization\iref{temp.spec.partial.match}.
31363137
A declaration of the primary template shall precede any specialization of
31373138
that template.
3138-
A partial specialization shall be reachable from any use of a class template
3139+
A partial specialization shall be reachable from any use of a template
31393140
specialization that would make use of the partial specialization as the result of
31403141
an implicit or explicit instantiation; no diagnostic is required.
31413142

31423143
\pnum
31433144
Two partial specialization declarations declare the same entity
31443145
if they are partial specializations of the same template and have equivalent
31453146
\grammarterm{template-head}s and template argument lists\iref{temp.over.link}.
3146-
Each class template partial specialization is a distinct template and
3147-
definitions shall be provided for the members of a template partial
3148-
specialization\iref{temp.class.spec.mfunc}.
3147+
Each partial specialization is a distinct template.
31493148

31503149
\pnum
31513150
\begin{example}
@@ -3181,10 +3180,10 @@
31813180
\end{example}
31823181

31833182
\pnum
3184-
The template parameters are specified in the angle bracket enclosed list
3183+
The template parameters of a template are specified in the angle bracket enclosed list
31853184
that immediately follows the keyword \keyword{template}.
31863185
The template argument list of a partial specialization is
3187-
the \grammarterm{template-argument-list} of the \grammarterm{ class-name}.
3186+
the \grammarterm{template-argument-list} of the \grammarterm{class-name}.
31883187

31893188
\pnum
31903189
A partial specialization may be declared in any
@@ -3452,7 +3451,6 @@
34523451
\rSec3[temp.spec.partial.member]{Members of class template partial specializations}
34533452

34543453
\pnum
3455-
A class template partial specialization is a distinct template.
34563454
The members of the class template partial specialization are
34573455
unrelated to the members of the primary template.
34583456
Class template partial specialization members that are used in a way that
@@ -4789,10 +4787,10 @@
47894787
the name of the nested class referenced as a member of the
47904788
current instantiation, or
47914789
\item
4792-
in the definition of a partial specialization
4793-
or a member of a partial specialization, the name of
4790+
in the definition of a class template partial specialization
4791+
or a member of a class template partial specialization, the name of
47944792
the class template followed by a template argument list
4795-
equivalent to that of the partial specialization\iref{temp.class.spec}
4793+
equivalent to that of the partial specialization\iref{temp.spec.partial}
47964794
enclosed in \tcode{<>} (or an equivalent template alias specialization).
47974795
\end{itemize}
47984796

@@ -5724,7 +5722,7 @@
57245722
}
57255723
\end{codeblock}
57265724
\end{example}
5727-
If the template selected for the specialization\iref{temp.class.spec.match}
5725+
If the template selected for the specialization\iref{temp.spec.partial.match}
57285726
has been declared, but not defined,
57295727
at the point of instantiation\iref{temp.point},
57305728
the instantiation yields an incomplete class type\iref{basic.types}.

0 commit comments

Comments
 (0)