Skip to content

Commit 6354380

Browse files
committed
[utility.requirements] Add front matter on exception propagation under [exception.propagation]
1 parent d299b77 commit 6354380

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

source/lib-intro.tex

+20
Original file line numberDiff line numberDiff line change
@@ -1427,6 +1427,8 @@
14271427
\ref{hash.requirements} describes the requirements on hash function objects.
14281428
\ref{allocator.requirements} describes the requirements on storage
14291429
allocators.
1430+
\ref{exception.propagation}
1431+
describes additional requirements and guarantees when propagating exceptions.
14301432

14311433
\rSec3[utility.arg.requirements]{Template argument requirements}
14321434

@@ -2218,6 +2220,24 @@
22182220
other than \tcode{value_type} are complete types.
22192221
\end{itemize}
22202222

2223+
\rSec3[exception.propagation]{Exception propagation requirements}
2224+
2225+
\pnum
2226+
Some functions defined in the \Cpp{} standard library
2227+
impose requirements and guarantees when an exception is thrown from a described evaluation.
2228+
Unless stated otherwise,
2229+
exceptions thrown due to evaluating the subexpression
2230+
that implements the described evaluation
2231+
up to the complete evaluation of its enclosing full-expression
2232+
also have those requirements and guarantees imposed.
2233+
\begin{note}
2234+
This includes exceptions thrown as part of
2235+
initializing parameters,
2236+
evaluating default arguments, and
2237+
destroying temporaries (including discarded-value expressions)
2238+
\iref{expr.call}.
2239+
\end{note}
2240+
22212241
\rSec2[constraints]{Constraints on programs}
22222242

22232243
\rSec3[constraints.overview]{Overview}

0 commit comments

Comments
 (0)