On Wednesday, 24 July 2013 at 08:07:55 UTC, Alex H wrote:
This code:

void test(const int n)
{
        auto j = n;
        j++;
}

Gives this error:
cannot modify const expression j


Is this considered a feature or a bug? I would assume most people
wouldn't want new variables inheriting const.

This is the exact behavior I would expect. I think of auto as "this variable is going to be the same type as that variable." Since in is const int, then j also is going to be const int. If you want to copy n into a nonconst variable, you have to cast away the const.

int j = cast( int )n;
auto j = cast( int )n;

Reply via email to