17 Language support library [support] (original) (raw)

17.14 Other runtime support [support.runtime]

17.14.3 Header synopsis [csetjmp.syn]

namespace std { using jmp_buf = see below;[[noreturn]] void longjmp(jmp_buf env, int val);} #define setjmp(env) see below

The contents of the header are the same as the C standard library header .

The function signaturelongjmp(jmp_buf jbuf, int val)has more restricted behavior in this document.

A setjmp/longjmp call pair has undefined behavior if replacing the setjmp and longjmpby catch and throw would invoke any non-trivial destructors for any objects with automatic storage duration.

A call to setjmp or longjmp has undefined behavior if invoked in a suspension context of a coroutine ([expr.await]).

See also: ISO/IEC 9899:2018, 7.13