From Jason Turner

[temp.point]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpyfhq7f4q/{from.md → to.md} +17 -14
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, for any such
59
- specialization that has a point of instantiation within the translation
60
- unit, the end of the translation unit is also considered a point of
61
- instantiation. A specialization for a class template has at most one
62
- point of instantiation within a translation unit. A specialization for
63
- any template may have points of instantiation in multiple translation
64
- units. If two different points of instantiation give a template
65
- specialization different meanings according to the one-definition rule (
66
- [[basic.def.odr]]), the program is ill-formed, no diagnostic required.
 
 
 
 
 
 
 
 
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