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
|
| 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 |
|