You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<div>A <var>template-id</var>, that is, the <var>template-name</var> followed by a <var>template-argument-list</var>shall not be specified in the <del>declaration</del><ins><var>declaration</var></ins> of a primary template declaration.
231
-
<divclass="stdexample"><preclass="example">
234
+
<div><ins><span>[ <i>Note:</i></span></ins>A <var>template-id</var><del>,</del><ins>(</ins>that is, <del>the</del><ins>a</ins><var>template-name</var> followed by a <var>template-argument-list</var><ins>)</ins><del>shall not</del><ins>cannot</ins> be <del>specified in the declaration of</del><ins>the declared name of</ins> a primary template declaration.
<code>template<class T1, class T2, int I> class A<T1, T2, I> { }; // <spanclass="comment">error</span>
233
237
template<class T1, int I> void sort<T1, I>(T1 data[I]); // <spanclass="comment">error</span></code>
234
-
</pre></div>
235
-
<spanclass="stdnote">However, this syntax is allowed in<del> class template</del> partial specializations (<aclass="stdref">temp.class.spec</a>).</span></div>
238
+
</pre></div></del></div>
239
+
<del><span>[ <i>Note:</i></span></del>However, this syntax is allowed in<del> class template</del> partial specializations (<aclass="stdref">temp.class.spec</a>).<span> — <i>end note</i> ]</span></div>
<div>A <dfn>primary<del> class</del> template</dfn> declaration is one in which the<del> class</del>templatename is an identifier.
246
-
A template declaration in which the<del> class</del> template name is a <var>simple-template-id</var> is a <dfn>partial specialization</dfn> of the<del> class</del> template named in the <var>simple-template-id</var>.
249
+
<div>A <dfn>primary<del> class</del> template</dfn> declaration is one in which the<del> class template name</del><ins><var>template-name</var></ins> is <del>an identifier</del><ins>not followed by a <var>template-argument-list</var></ins>.
250
+
A template declaration in which the<del> class</del> template name is a <var>simple-template-id</var> is a <dfn>partial specialization</dfn> of the<del> class</del> template named in the <var>simple-template-id</var><ins>, which shall be a class or variable template</ins>.
247
251
A partial specialization of a<del> class</del> template provides an alternative definition of the template that is used instead of the primary definition when the arguments in a specialization match those given in the partial specialization (<aclass="stdref">temp.class.spec.match</a>).
248
252
The primary template shall be declared before any<ins> partial</ins> specializations of that template.
249
-
A partial specialization shall be declared before the first use of a<del> class</del> template specialization that would make use of the partial specialization as the result of an implicit or explicit instantiation in every translation unit in which such a use occurs; no diagnostic is required.
250
-
<ins>Only class templates and variable templates may have partial specializations.</ins></div>
253
+
A partial specialization shall be declared before the first use of a<del> class</del> template specialization that would make use of the partial specialization as the result of an implicit or explicit instantiation in every translation unit in which such a use occurs; no diagnostic is required.</div>
<div>Each<del> class template</del> partial specialization is a distinct template<del> and</del><ins>.</ins>
256
-
<del>d</del><ins>D</ins>efinitions shall be provided for the members of a<ins> class</ins> template partial specialization (<aclass="stdref">temp.class.spec.mfunc</a>).</div>
258
+
<div>Each<del> class template</del> partial specialization is a distinct template<del> and definitions shall be provided for the members of a template partial specialization (<aclass="stdref">temp.class.spec.mfunc</a>)</del>.</div>
0 commit comments