tmp/tmpsugtcdw0/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### General <a id="temp.decls.general">[[temp.decls.general]]</a>
|
| 2 |
+
|
| 3 |
+
The template parameters of a template are specified in the angle bracket
|
| 4 |
+
enclosed list that immediately follows the keyword `template`.
|
| 5 |
+
|
| 6 |
+
A *primary template* declaration is one in which the name of the
|
| 7 |
+
template is not followed by a *template-argument-list*. The template
|
| 8 |
+
argument list of a primary template is the template argument list of its
|
| 9 |
+
*template-head* [[temp.arg]]. A template declaration in which the name
|
| 10 |
+
of the template is followed by a *template-argument-list* is a partial
|
| 11 |
+
specialization [[temp.spec.partial]] of the template named in the
|
| 12 |
+
declaration, which shall be a class or variable template.
|
| 13 |
+
|
| 14 |
+
For purposes of name lookup and instantiation, default arguments,
|
| 15 |
+
*type-constraint*s, *requires-clause*s [[temp.pre]], and
|
| 16 |
+
*noexcept-specifier*s of function templates and of member functions of
|
| 17 |
+
class templates are considered definitions; each default argument,
|
| 18 |
+
*type-constraint*, *requires-clause*, or *noexcept-specifier* is a
|
| 19 |
+
separate definition which is unrelated to the templated function
|
| 20 |
+
definition or to any other default arguments, *type-constraint*s,
|
| 21 |
+
*requires-clause*s, or *noexcept-specifier*s. For the purpose of
|
| 22 |
+
instantiation, the substatements of a constexpr if statement [[stmt.if]]
|
| 23 |
+
are considered definitions.
|
| 24 |
+
|
| 25 |
+
Because an *alias-declaration* cannot declare a *template-id*, it is not
|
| 26 |
+
possible to partially or explicitly specialize an alias template.
|
| 27 |
+
|