From 8238d70f687fa2050a7f4f7949dfe338b14fd4bb Mon Sep 17 00:00:00 2001 From: Alisdair Meredith Date: Tue, 30 Jul 2024 16:51:21 -0400 Subject: [PATCH] [basic.life] Move definition of before and after from bottom to top of subclause The last paragraph of this subclause changes the definition of English words used throughout the preceding paragraphs. While it might be preferable to replace all such usage with the new definitions, that would be a Core issue, see paragraph 6 for an example of awkward usage. Hence, we move the redefinition to the start of the subclause so we know how to read this text from the start. --- source/basic.tex | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/source/basic.tex b/source/basic.tex index 9524265f81..f1d58fcb32 100644 --- a/source/basic.tex +++ b/source/basic.tex @@ -3456,6 +3456,10 @@ \rSec2[basic.life]{Lifetime} +\pnum +In this subclause, ``before'' and ``after'' refer to the ``happens before'' +relation\iref{intro.multithread}. + \pnum \indextext{object lifetime|(}% The \defn{lifetime} of an object or reference is a runtime property of the @@ -3631,6 +3635,12 @@ \keyword{typeid}. \end{itemize} +\begin{note} +Therefore, undefined behavior results +if an object that is being constructed in one thread is referenced from another +thread without adequate synchronization. +\end{note} + \pnum An object $o_1$ is \defn{transparently replaceable} by an object $o_2$ if \begin{itemize} @@ -3741,15 +3751,6 @@ } \end{codeblock} \end{example} - -\pnum -In this subclause, ``before'' and ``after'' refer to the ``happens before'' -relation\iref{intro.multithread}. -\begin{note} -Therefore, undefined behavior results -if an object that is being constructed in one thread is referenced from another -thread without adequate synchronization. -\end{note} \indextext{object lifetime|)} \rSec2[basic.indet]{Indeterminate and erroneous values}