This seems a little risky. If you later do this:
```c++
int first = 3;
if (foo)
    for (int x = 0; x < 5; x++)
        bar(first);
```
then it won't do what it looks like it should.