Skip to content

Commit

Permalink
Adding a note
Browse files Browse the repository at this point in the history
  • Loading branch information
brevzin committed Jun 25, 2024
1 parent 2de92a1 commit bcc1875
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
16 changes: 10 additions & 6 deletions 3293_splicing_base_subobjects/p3293r1.html
Original file line number Diff line number Diff line change
Expand Up @@ -747,12 +747,16 @@ <h2 data-number="3.1" id="wording"><span class="header-section-number">3.1</span
<div class="addu">
<ul>
<li><span class="marginalizedparent"><a class="marginalized" href="#pnum_4" id="pnum_4">(7.4b)</a></span>
If E2 is a direct, non-virtual base class of the type of E1 and the type
of E1 is “<code class="sourceCode cpp"><em>cv</em> X</code>”, the
expression designates the corresponding base class subobject of the
object designated by the first expression. If E1 is an lvalue, then
E1.E2 is an lvalue; otherwise E1.E2 is an xvalue. The type of E1.E2 is
<code class="sourceCode cpp"><em>cv</em> E2</code>”.</li>
If E2 is a direct, non-virtual base class subobject of the type of E1
and the type of E1 is
<code class="sourceCode cpp"><em>cv</em> X</code>”, the expression
designates the corresponding base class subobject of the object
designated by the first expression. If E1 is an lvalue, then E1.E2 is an
lvalue; otherwise E1.E2 is an xvalue. The type of E1.E2 is
<code class="sourceCode cpp"><em>cv</em> E2</code>”. <span class="note"><span><em>Note 1:</em> </span>This can only occur in an
expression of the form <code class="sourceCode cpp">e1<span class="op">.[:</span>e2<span class="op">:]</span></code>
where <code class="sourceCode cpp">e2</code> is a reflection designating
a base class subobject.<span> — <em>end note</em> ]</span></span></li>
</ul>
</div>
<ul>
Expand Down
2 changes: 1 addition & 1 deletion 3293_splicing_base_subobjects/splicing-base-subobjects.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Add a bullet to [expr.ref]{.sref}/7:
* [7.4]{.pnum} If E2 is a nested type, the expression E1.E2 is ill-formed.
::: addu
* [7.4b]{.pnum} If E2 is a direct, non-virtual base class of the type of E1 and the type of E1 is "`$cv$ X`", the expression designates the corresponding base class subobject of the object designated by the first expression. If E1 is an lvalue, then E1.E2 is an lvalue; otherwise E1.E2 is an xvalue. The type of E1.E2 is "`$cv$ E2`".
* [7.4b]{.pnum} If E2 is a direct, non-virtual base class subobject of the type of E1 and the type of E1 is "`$cv$ X`", the expression designates the corresponding base class subobject of the object designated by the first expression. If E1 is an lvalue, then E1.E2 is an lvalue; otherwise E1.E2 is an xvalue. The type of E1.E2 is "`$cv$ E2`". [This can only occur in an expression of the form `e1.[:e2:]` where `e2` is a reflection designating a base class subobject.]{.note}
:::
* [7.5]{.pnum} If E2 is a member enumerator and the type of E2 is T, the expression E1.E2 is a prvalue of type T whose value is the value of the enumerator.
Expand Down

0 comments on commit bcc1875

Please sign in to comment.