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