From Jason Turner

[res.on.functions]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpj5tzxhrp/{from.md → to.md} +10 -11
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 effects are 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
15
- the 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]],
21
- [[iterator.requirements]], [[algorithms.requirements]],
22
- [[numeric.requirements]]). Operations on such types can report a
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 [[basic.types]] is used as a template argument
28
- when instantiating a template component or evaluating a concept,
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