Notation of "A Proposal to Add an Rvalue Reference to the C++
Language"
Hi,
I have been reading the improvement that will be made to C++0x, and
one of this is "A Proposal to Add an Rvalue Reference to the C++
Language" , which will add a double &, for example:
int someFunction(int && a){ ...
the reason is to allow to change temporaries passed to functions. Due
to:
void f(int& a);
void ff(const int& a);
...
int x = 5;
f(x); //ok
ff(x); //ok
f(2); // error, not to make mistakes
ff(2); //ok
to can pass changeable temporaries, it has been proposed the syntax
int&&, which I thought is naughty.
void g(int&& a){ a = 0; }
g(2); //ok
Would not be better the following syntax? -> instead of int&& ,
mutable int&
The mutable word means "not const", and is used for const member
functions to allow changing values.
I think it has much more logic to:
void f(int& a);
void ff(const int& a){ //perform some task without the possibility of
changing a}
void g(mutable int& a){ a = 0; //for example }
int x = 5;
f(x); //ok
ff(x);//ok
g(x); // better to be an error to avoid silly mistakes
f(2); //error
ff(2); // not an error, but we can=B4t change the value which is we
really want
g(2); //ok, we can do it.
My proposal is to change '&&' for 'mutable &'