Skip to content

Commit c0843b0

Browse files
opensdhtkoeppe
authored andcommitted
[temp] Finish resolving P2096R2/P1787R6 conflicts
Move definition and constraint from [temp.spec.partial.general] to [temp.decls.general]
1 parent 9c4e096 commit c0843b0

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

source/templates.tex

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +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-
[NEEDS REVIEW] In a class or variable template declaration, if the
120-
declared name
121-
is a
122-
\grammarterm{simple-template-id},
123-
the declaration declares a partial specialization\iref{temp.spec.partial}.
119+
A class or variable template declaration of a \grammarterm{simple-template-id}
120+
declares a partial specialization\iref{temp.spec.partial}.
124121
\end{note}
125122

126123
\pnum
@@ -2153,6 +2150,11 @@
21532150

21542151
\rSec2[temp.decls.general]{General}
21552152

2153+
\pnum
2154+
The template parameters of a template are specified in
2155+
the angle bracket enclosed list
2156+
that immediately follows the keyword \keyword{template}.
2157+
21562158
\pnum
21572159
A \defnadj{primary}{template} declaration is one
21582160
in which the name of the template is not followed by
@@ -2161,8 +2163,9 @@
21612163
the template argument list of its \grammarterm{template-head}\iref{temp.arg}.
21622164
A template declaration in which the name of the template is followed by
21632165
a \grammarterm{template-argument-list} is
2164-
a partial specialization of
2165-
the template named in the declaration\iref{temp.spec.partial}.
2166+
a partial specialization\iref{temp.spec.partial} of
2167+
the template named in the declaration,
2168+
which shall be a class or variable template.
21662169

21672170
\pnum
21682171
For purposes of name lookup and instantiation,
@@ -3134,7 +3137,8 @@
31343137
of the template that is used instead of the primary definition when the
31353138
arguments in a specialization match those given in the partial
31363139
specialization\iref{temp.spec.partial.match}.
3137-
A declaration of the primary template shall precede any specialization of
3140+
A declaration of the primary template shall precede
3141+
any partial specialization of
31383142
that template.
31393143
A partial specialization shall be reachable from any use of a template
31403144
specialization that would make use of the partial specialization as the result of
@@ -3180,10 +3184,8 @@
31803184
\end{example}
31813185

31823186
\pnum
3183-
The template parameters of a template are specified in the angle bracket enclosed list
3184-
that immediately follows the keyword \keyword{template}.
31853187
The template argument list of a partial specialization is
3186-
the \grammarterm{template-argument-list} of the \grammarterm{class-name}.
3188+
the \grammarterm{template-argument-list} following the name of the template.
31873189

31883190
\pnum
31893191
A partial specialization may be declared in any

0 commit comments

Comments
 (0)