[res.on.functions] (original) (raw)
16 Library introduction [library]
16.4 Library-wide requirements [requirements]
16.4.5 Constraints on programs [constraints]
16.4.5.8 Other functions [res.on.functions]
In certain cases (replacement functions, handler functions, operations on types used to instantiate standard library template components), the C++ standard library depends on components supplied by a C++ program.
If these components do not meet their requirements, this document places no requirements on the implementation.
In particular, the behavior is undefined in the following cases:
- For replacement functions ([replacement.functions]), if the installed replacement function does not implement the semantics of the applicable_Required behavior_: paragraph.
- For handler functions ([new.handler], [terminate.handler]), if the installed handler function does not implement the semantics of the applicable_Required behavior_: paragraph.
- Operations on such types can report a failure by throwing an exception unless otherwise specified.
- If any replacement function or handler function or destructor operation exits via an exception, unless specifically allowed in the applicable_Required behavior_: paragraph.
- If an incomplete type ([basic.types.general]) is used as a template argument when instantiating a template component or evaluating a concept, unless specifically allowed for that component.