tmp/tmpyfhq7f4q/{from.md → to.md}
RENAMED
|
@@ -45,23 +45,26 @@ enclosing class template specialization.
|
|
| 45 |
|
| 46 |
An explicit instantiation definition is an instantiation point for the
|
| 47 |
specialization or specializations specified by the explicit
|
| 48 |
instantiation.
|
| 49 |
|
| 50 |
-
The instantiation context of an expression that depends on the template
|
| 51 |
-
arguments is the set of declarations with external linkage declared
|
| 52 |
-
prior to the point of instantiation of the template specialization in
|
| 53 |
-
the same translation unit.
|
| 54 |
-
|
| 55 |
A specialization for a function template, a member function template, or
|
| 56 |
of a member function or static data member of a class template may have
|
| 57 |
multiple points of instantiations within a translation unit, and in
|
| 58 |
-
addition to the points of instantiation described above,
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
specialization
|
| 66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
|
|
|
|
| 45 |
|
| 46 |
An explicit instantiation definition is an instantiation point for the
|
| 47 |
specialization or specializations specified by the explicit
|
| 48 |
instantiation.
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
A specialization for a function template, a member function template, or
|
| 51 |
of a member function or static data member of a class template may have
|
| 52 |
multiple points of instantiations within a translation unit, and in
|
| 53 |
+
addition to the points of instantiation described above,
|
| 54 |
+
|
| 55 |
+
- for any such specialization that has a point of instantiation within
|
| 56 |
+
the *declaration-seq* of the *translation-unit*, prior to the
|
| 57 |
+
*private-module-fragment* (if any), the point after the
|
| 58 |
+
*declaration-seq* of the *translation-unit* is also considered a point
|
| 59 |
+
of instantiation, and
|
| 60 |
+
- for any such specialization that has a point of instantiation within
|
| 61 |
+
the *private-module-fragment*, the end of the translation unit is also
|
| 62 |
+
considered a point of instantiation.
|
| 63 |
+
|
| 64 |
+
A specialization for a class template has at most one point of
|
| 65 |
+
instantiation within a translation unit. A specialization for any
|
| 66 |
+
template may have points of instantiation in multiple translation units.
|
| 67 |
+
If two different points of instantiation give a template specialization
|
| 68 |
+
different meanings according to the one-definition rule
|
| 69 |
+
[[basic.def.odr]], the program is ill-formed, no diagnostic required.
|
| 70 |
|