Skip to content

Commit 2d442fe

Browse files
jensmaurertkoeppe
authored andcommitted
Rename stable labels "temp.class.spec*" to "temp.spec.partial*"
This follows the generalization of the notion of "partial specialization" from P2096R2, which made the old labels somewhat inaccurate, and was recommended as an option by that paper.
1 parent 3334ff2 commit 2d442fe

File tree

4 files changed

+26
-19
lines changed

4 files changed

+26
-19
lines changed

source/classes.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
A class declaration where the \grammarterm{class-name}
6161
in the \grammarterm{class-head-name} is a \grammarterm{simple-template-id}
6262
shall be an explicit specialization\iref{temp.expl.spec} or
63-
a partial specialization\iref{temp.class.spec}.
63+
a partial specialization\iref{temp.spec.partial}.
6464
A \grammarterm{class-specifier} whose
6565
\grammarterm{class-head} omits the
6666
\grammarterm{class-head-name} defines an unnamed class.

source/declarations.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7192,7 +7192,7 @@
71927192
namespace is implicitly inserted into the enclosing namespace as for an unnamed
71937193
namespace\iref{namespace.unnamed}. Furthermore, each
71947194
member of the inline namespace can subsequently be partially
7195-
specialized\iref{temp.class.spec}, explicitly
7195+
specialized\iref{temp.spec.partial}, explicitly
71967196
instantiated\iref{temp.explicit}, or explicitly specialized\iref{temp.expl.spec} as
71977197
though it were a member of the enclosing namespace. Finally, looking up a name in the
71987198
enclosing namespace via explicit qualification\iref{namespace.qual} will include
@@ -7893,7 +7893,7 @@
78937893
considered when a use of the name is made. Thus, additional
78947894
overloads added after the \grammarterm{using-declaration} are ignored, but
78957895
default function arguments\iref{dcl.fct.default}, default template
7896-
arguments\iref{temp.param}, and template specializations~(\ref{temp.class.spec},
7896+
arguments\iref{temp.param}, and template specializations~(\ref{temp.spec.partial},
78977897
\ref{temp.expl.spec}) are considered.
78987898
\end{note}
78997899
\begin{example}
@@ -7925,7 +7925,7 @@
79257925
of that template. If a \grammarterm{using-declaration} names a
79267926
template, partial specializations introduced after the
79277927
\grammarterm{using-declaration} are effectively visible because the primary
7928-
template is visible\iref{temp.class.spec}.
7928+
template is visible\iref{temp.spec.partial}.
79297929
\end{note}
79307930

79317931
\pnum

source/templates.tex

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
declared name
124124
is a
125125
\grammarterm{simple-template-id},
126-
the declaration declares a partial specialization\iref{temp.class.spec}.
126+
the declaration declares a partial specialization\iref{temp.spec.partial}.
127127
\end{note}
128128

129129
\pnum
@@ -157,7 +157,7 @@
157157
\pnum
158158
A class template shall not have the same name as any other
159159
template, class, function, variable, enumeration, enumerator, namespace, or
160-
type in the same scope\iref{basic.scope}, except as specified in~\ref{temp.class.spec}.
160+
type in the same scope\iref{basic.scope}, except as specified in~\ref{temp.spec.partial}.
161161
Except that a function template can be overloaded either by non-template
162162
functions\iref{dcl.fct} with the same name or by other function templates
163163
with the same name\iref{temp.over},
@@ -1321,7 +1321,7 @@
13211321
parameter.
13221322

13231323
\pnum
1324-
Any partial specializations\iref{temp.class.spec} associated with the
1324+
Any partial specializations\iref{temp.spec.partial} associated with the
13251325
primary template are considered when a
13261326
specialization based on the template
13271327
\grammarterm{template-parameter}
@@ -1991,7 +1991,7 @@
19911991
\item the best viable candidate of non-template functions\iref{over.match.best},
19921992
\item the address of a non-template function\iref{over.over},
19931993
\item the matching of template template arguments\iref{temp.arg.template},
1994-
\item the partial ordering of class template specializations\iref{temp.class.order}, and
1994+
\item the partial ordering of class template specializations\iref{temp.spec.partial.order}, and
19951995
\item the partial ordering of function templates\iref{temp.func.order}.
19961996
\end{itemize}
19971997
\end{note}
@@ -2165,7 +2165,7 @@
21652165
\begin{note}
21662166
A \grammarterm{template-id}
21672167
cannot be the declared name of a primary template declaration.
2168-
However, this syntax is allowed in partial specializations\iref{temp.class.spec}.
2168+
However, this syntax is allowed in partial specializations\iref{temp.spec.partial}.
21692169
\end{note}
21702170

21712171
\pnum
@@ -3067,7 +3067,7 @@
30673067
\pnum
30683068
A template friend declaration specifies that all specializations of that
30693069
template, whether they are implicitly instantiated\iref{temp.inst}, partially
3070-
specialized\iref{temp.class.spec} or explicitly specialized\iref{temp.expl.spec},
3070+
specialized\iref{temp.spec.partial} or explicitly specialized\iref{temp.expl.spec},
30713071
are friends of the class containing the template friend declaration.
30723072
\begin{example}
30733073
\begin{codeblock}
@@ -3171,9 +3171,9 @@
31713171
Such a constrained friend function or function template declaration
31723172
does not declare the same function or function template as a declaration in any other scope.
31733173

3174-
\rSec2[temp.class.spec]{Partial specialization}
3174+
\rSec2[temp.spec.partial]{Partial specialization}
31753175

3176-
\rSec3[temp.class.spec.general]{General}
3176+
\rSec3[temp.spec.partial.general]{General}
31773177

31783178
\pnum
31793179
\indextext{specialization!class template partial}%
@@ -3189,7 +3189,7 @@
31893189
A partial specialization of a template provides an alternative definition
31903190
of the template that is used instead of the primary definition when the
31913191
arguments in a specialization match those given in the partial
3192-
specialization\iref{temp.class.spec.match}.
3192+
specialization\iref{temp.spec.partial.match}.
31933193
The primary template shall be declared before any partial specializations of
31943194
that template.
31953195
A partial specialization shall be declared before the first use of a template
@@ -3333,7 +3333,7 @@
33333333
\end{example}
33343334
\item
33353335
The partial specialization shall be more specialized than the primary
3336-
template\iref{temp.class.order}.
3336+
template\iref{temp.spec.partial.order}.
33373337

33383338
\item
33393339
The template parameter list of a partial specialization shall not contain default
@@ -3358,7 +3358,7 @@
33583358
but will be checked when substituting into the partial specialization.
33593359
\end{note}
33603360

3361-
\rSec3[temp.class.spec.match]{Matching of partial specializations}
3361+
\rSec3[temp.spec.partial.match]{Matching of partial specializations}
33623362

33633363
\pnum
33643364
When a template is used in a context that requires an instantiation of
@@ -3375,7 +3375,7 @@
33753375
generated from that partial specialization.
33763376
\item
33773377
If more than one matching partial specialization is found,
3378-
the partial order rules\iref{temp.class.order} are used to determine
3378+
the partial order rules\iref{temp.spec.partial.order} are used to determine
33793379
whether one of the partial specializations is more specialized than the
33803380
others.
33813381
If such a partial specialization exists,
@@ -3446,7 +3446,7 @@
34463446
The template arguments of a partial specialization are deduced from the arguments
34473447
of the primary template.
34483448

3449-
\rSec3[temp.class.order]{Partial ordering of partial specializations}
3449+
\rSec3[temp.spec.partial.order]{Partial ordering of partial specializations}
34503450

34513451
\pnum
34523452
\indextext{more specialized!class template}%
@@ -3522,7 +3522,7 @@
35223522
because \tcode{B} is more specialized than \tcode{A}.
35233523
\end{example}
35243524

3525-
\rSec3[temp.class.spec.mfunc]{Members of class template partial specializations}
3525+
\rSec3[temp.spec.partial.member]{Members of class template partial specializations}
35263526

35273527
\pnum
35283528
The template parameter list of a member of a class template partial
@@ -4270,7 +4270,7 @@
42704270
A concept cannot be
42714271
explicitly instantiated\iref{temp.explicit},
42724272
explicitly specialized\iref{temp.expl.spec},
4273-
or partially specialized\iref{temp.class.spec}.
4273+
or partially specialized\iref{temp.spec.partial}.
42744274
\end{note}
42754275

42764276
\pnum

source/xrefdelta.tex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,12 @@
2525

2626
\movedxref{re.def}{intro.refs}
2727

28+
% P2096R2 Generalized wording for partial specializations
29+
\movedxref{temp.class.spec}{temp.spec.partial}
30+
\movedxref{temp.class.spec.general}{temp.spec.partial.general}
31+
\movedxref{temp.class.spec.match}{temp.spec.partial.match}
32+
\movedxref{temp.class.order}{temp.spec.partial.order}
33+
\movedxref{temp.class.spec.mfunc}{temp.spec.partial.member}
34+
2835
% Deprecated features.
2936
%\deprxref{old.label} (if moved to depr.old.label, otherwise use \movedxref)

0 commit comments

Comments
 (0)