On Mon, 30 Jul 2012, Tom Tromey wrote:

> >>>>> "Joseph" == Joseph S Myers <jos...@codesourcery.com> writes:
> 
> Joseph> On Mon, 30 Jul 2012, Tom Tromey wrote:
> >> 6.3 is about conversions, and the first paragraph starts "several
> >> operators convert ...".  Based on this, and other such phrases in the
> >> text, I think the entire section applies to operators.
> 
> Joseph> 6.3.2.1 paragraphs 2 and 3 are phrased in terms of operators
> Joseph> *preventing* conversion and certain conversions happening unless
> Joseph> there is an operator to prevent them.
> 
> Wow, I really don't read it that way at all.  Looking at it yet again,
> now, I can't even really make it come out that way.

"Except when it is the operand of [...] an lvalue [...] is converted 
[...]" seems straightforward enough to me.  Thus, as another example

volatile int *p;
void f(void) { *p; }

dereferences the pointer when f is called (the lvalue *p is converted to 
an rvalue in the expression statement, without *p being an operand of an 
operator; if it were an operand of unary '&', that would stop the 
conversion).

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to