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