Skip to content

Commit 59d6bfc

Browse files
AlisdairMtkoeppe
authored andcommitted
[basic.life] Reflow text defining transparently replaceable
p8 is difficult to read as it defines transparently replaceable only after it has made all use of it. The edit pulls the definition of transparently replaceable into its own preceding paragraph, and then simplifies the sentence that uses this term.
1 parent 1b4e474 commit 59d6bfc

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

source/basic.tex

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3625,17 +3625,7 @@
36253625
\end{itemize}
36263626

36273627
\pnum
3628-
If, after the lifetime of an object has ended and before the storage
3629-
which the object occupied is reused or released, a new object is created
3630-
at the storage location which the original object occupied, a pointer
3631-
that pointed to the original object, a reference that referred to the
3632-
original object, or the name of the original object will automatically
3633-
refer to the new object and, once the lifetime of the new object has
3634-
started, can be used to manipulate the new object, if
3635-
the original object is transparently replaceable (see below)
3636-
by the new object.
3637-
An object $o_1$ is \defn{transparently replaceable}
3638-
by an object $o_2$ if:
3628+
An object $o_1$ is \defn{transparently replaceable} by an object $o_2$ if:
36393629
\begin{itemize}
36403630
\item the storage that $o_2$ occupies exactly overlays
36413631
the storage that $o_1$ occupied, and
@@ -3652,6 +3642,17 @@
36523642
$o_1$ and $o_2$ are direct subobjects of objects $p_1$ and $p_2$, respectively,
36533643
and $p_1$ is transparently replaceable by $p_2$.
36543644
\end{itemize}
3645+
3646+
\pnum
3647+
After the lifetime of an object has ended and before the storage which the
3648+
object occupied is reused or released, if a new object is created at the
3649+
storage location which the original object occupied and the original object was
3650+
transparently replaceable by the new object, a pointer that pointed to the
3651+
original object, a reference that referred to the original object, or the name
3652+
of the original object will automatically refer to the new object and, once the
3653+
lifetime of the new object has started, can be used to manipulate the new
3654+
object.
3655+
36553656
\begin{example}
36563657
\begin{codeblock}
36573658
struct C {

0 commit comments

Comments
 (0)