
"Peter Dimov" <pdimov@mmltd.net> writes:
David Abrahams wrote:
"Peter Dimov" <pdimov@mmltd.net> writes: [snip]
The compiler can place a temporary of type "int const" and value 5 in ROM, and pass its address to f. Similarly, in:
struct X { int i; X(int i): i(i) {} };
void f(X const & x);
int main() { f( X(5) ); }
the compiler is allowed to construct a "X const" with a value of X(5) at compile time and place it in ROM.
OK. Relevance?
I seem to recall attempts to strike down that second bullet of the first bullet of the second bullet of 8.3.5/5 :-) and demand that the reference be bound to the object represented by the rvalue. At the time, this seemed a reasonable idea, but then I came up with the ROM example. Maybe it's already widely known and I'm just reinventing the wheel.
BTW, what does the standard actually say about the const-ness of introduced temporaries? I'd always assumed that they would be non-const in the same way as rvalues of class type, but I've obviously missed something. -- Raoul Gough. export LESS='-X'