tmp/tmpj5tzxhrp/{from.md → to.md}
RENAMED
|
@@ -4,27 +4,26 @@ In certain cases (replacement functions, handler functions, operations
|
|
| 4 |
on types used to instantiate standard library template components), the
|
| 5 |
C++ standard library depends on components supplied by a C++ program. If
|
| 6 |
these components do not meet their requirements, this document places no
|
| 7 |
requirements on the implementation.
|
| 8 |
|
| 9 |
-
In particular, the
|
| 10 |
|
| 11 |
- For replacement functions [[new.delete]], if the installed replacement
|
| 12 |
function does not implement the semantics of the applicable *Required
|
| 13 |
behavior:* paragraph.
|
| 14 |
-
- For handler functions
|
| 15 |
-
|
| 16 |
applicable *Required behavior:* paragraph.
|
| 17 |
- For types used as template arguments when instantiating a template
|
| 18 |
component, if the operations on the type do not implement the
|
| 19 |
-
semantics of the applicable *Requirements* subclause
|
| 20 |
-
[[allocator.requirements]], [[container.requirements]],
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
failure by throwing an exception unless otherwise specified.
|
| 24 |
- If any replacement function or handler function or destructor
|
| 25 |
operation exits via an exception, unless specifically allowed in the
|
| 26 |
applicable *Required behavior:* paragraph.
|
| 27 |
-
- If an incomplete type [[
|
| 28 |
-
when instantiating a template component or evaluating a
|
| 29 |
-
unless specifically allowed for that component.
|
| 30 |
|
|
|
|
| 4 |
on types used to instantiate standard library template components), the
|
| 5 |
C++ standard library depends on components supplied by a C++ program. If
|
| 6 |
these components do not meet their requirements, this document places no
|
| 7 |
requirements on the implementation.
|
| 8 |
|
| 9 |
+
In particular, the behavior is undefined in the following cases:
|
| 10 |
|
| 11 |
- For replacement functions [[new.delete]], if the installed replacement
|
| 12 |
function does not implement the semantics of the applicable *Required
|
| 13 |
behavior:* paragraph.
|
| 14 |
+
- For handler functions [[new.handler]], [[terminate.handler]], if the
|
| 15 |
+
installed handler function does not implement the semantics of the
|
| 16 |
applicable *Required behavior:* paragraph.
|
| 17 |
- For types used as template arguments when instantiating a template
|
| 18 |
component, if the operations on the type do not implement the
|
| 19 |
+
semantics of the applicable *Requirements* subclause
|
| 20 |
+
[[allocator.requirements]], [[container.requirements]], [[iterator.requirements]], [[algorithms.requirements]], [[numeric.requirements]].
|
| 21 |
+
Operations on such types can report a failure by throwing an exception
|
| 22 |
+
unless otherwise specified.
|
|
|
|
| 23 |
- If any replacement function or handler function or destructor
|
| 24 |
operation exits via an exception, unless specifically allowed in the
|
| 25 |
applicable *Required behavior:* paragraph.
|
| 26 |
+
- If an incomplete type [[term.incomplete.type]] is used as a template
|
| 27 |
+
argument when instantiating a template component or evaluating a
|
| 28 |
+
concept, unless specifically allowed for that component.
|
| 29 |
|