From Jason Turner

[namespace.std]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp0_rscl38/{from.md → to.md} +5 -12
tmp/tmp0_rscl38/{from.md → to.md} RENAMED
@@ -13,10 +13,14 @@ library requirements for the original template.[^21]
13
  The behavior of a C++ program is undefined if it declares an explicit or
14
  partial specialization of any standard library variable template, except
15
  where explicitly permitted by the specification of that variable
16
  template.
17
 
 
 
 
 
18
  The behavior of a C++ program is undefined if it declares
19
 
20
  - an explicit specialization of any member function of a standard
21
  library class template, or
22
  - an explicit specialization of any member function template of a
@@ -35,30 +39,19 @@ standard library static member function, or an instantiation of a
35
  standard library function template. Unless `F` is designated an
36
  *addressable function*, the behavior of a C++ program is unspecified
37
  (possibly ill-formed) if it explicitly or implicitly attempts to form a
38
  pointer to `F`.
39
 
40
- [*Note 1*: Possible means of forming such pointers include application
41
  of the unary `&` operator [[expr.unary.op]], `addressof`
42
  [[specialized.addressof]], or a function-to-pointer standard conversion
43
  [[conv.func]]. — *end note*]
44
 
45
  Moreover, the behavior of a C++ program is unspecified (possibly
46
  ill-formed) if it attempts to form a reference to `F` or if it attempts
47
  to form a pointer-to-member designating either a standard library
48
  non-static member function [[member.functions]] or an instantiation of a
49
  standard library member function template.
50
 
51
- Other than in namespace `std` or in a namespace within namespace `std`,
52
- a program may provide an overload for any library function template
53
- designated as a *customization point*, provided that (a) the overload’s
54
- declaration depends on at least one user-defined type and (b) the
55
- overload meets the standard library requirements for the customization
56
- point. [^22]
57
-
58
- [*Note 2*: This permits a (qualified or unqualified) call to the
59
- customization point to invoke the most appropriate overload for the
60
- given arguments. — *end note*]
61
-
62
  A translation unit shall not declare namespace `std` to be an inline
63
  namespace [[namespace.def]].
64
 
 
13
  The behavior of a C++ program is undefined if it declares an explicit or
14
  partial specialization of any standard library variable template, except
15
  where explicitly permitted by the specification of that variable
16
  template.
17
 
18
+ [*Note 1*: The requirements on an explicit or partial specialization
19
+ are stated by each variable template that grants such
20
+ permission. — *end note*]
21
+
22
  The behavior of a C++ program is undefined if it declares
23
 
24
  - an explicit specialization of any member function of a standard
25
  library class template, or
26
  - an explicit specialization of any member function template of a
 
39
  standard library function template. Unless `F` is designated an
40
  *addressable function*, the behavior of a C++ program is unspecified
41
  (possibly ill-formed) if it explicitly or implicitly attempts to form a
42
  pointer to `F`.
43
 
44
+ [*Note 2*: Possible means of forming such pointers include application
45
  of the unary `&` operator [[expr.unary.op]], `addressof`
46
  [[specialized.addressof]], or a function-to-pointer standard conversion
47
  [[conv.func]]. — *end note*]
48
 
49
  Moreover, the behavior of a C++ program is unspecified (possibly
50
  ill-formed) if it attempts to form a reference to `F` or if it attempts
51
  to form a pointer-to-member designating either a standard library
52
  non-static member function [[member.functions]] or an instantiation of a
53
  standard library member function template.
54
 
 
 
 
 
 
 
 
 
 
 
 
55
  A translation unit shall not declare namespace `std` to be an inline
56
  namespace [[namespace.def]].
57