Skip to content

Commit 5706664

Browse files
jensmaurerzygoloid
authored andcommitted
[basic.lval] Add array subscripting to note enumerating xvalues.
Also add cross-references pointing to the normative statements.
1 parent 8d5a7ce commit 5706664

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

source/expressions.tex

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,20 @@
131131
An expression is an xvalue if it is:
132132
\begin{itemize}
133133
\item the result of calling a function, whether implicitly or explicitly,
134-
whose return type is an rvalue reference to object type,
134+
whose return type is an rvalue reference to object type\iref{expr.call},
135135

136-
\item a cast to an rvalue reference to object type,
136+
\item a cast to an rvalue reference to object type
137+
(\ref{expr.dynamic.cast}, \ref{expr.static.cast}, \ref{expr.reinterpret.cast},
138+
\ref{expr.const.cast}, \ref{expr.cast}),
139+
140+
\item a subscripting operation with an xvalue array operand\iref{expr.sub},
137141

138142
\item a class member access expression designating a non-static data member
139143
of non-reference type
140-
in which the object expression is an xvalue, or
144+
in which the object expression is an xvalue\iref{expr.ref}, or
141145

142146
\item a \tcode{.*} pointer-to-member expression in which the first operand is
143-
an xvalue and the second operand is a pointer to data member.
147+
an xvalue and the second operand is a pointer to data member\iref{expr.mptr.oper}.
144148
\end{itemize}
145149
In general, the effect of this rule is that named rvalue references are
146150
treated as lvalues and unnamed rvalue references to objects are treated as

0 commit comments

Comments
 (0)