You could say the same thing about the range based for loop to begin with though -
No you can't. Range based for loops remain useful while not requiring anyone to compile extra code. I'm not saying that range based for loops don't have a point, but I don't think that they replace for loops. If you need to use a different step size, for example, you can't shoehorn range based for loops into that. If you care about performance, you could write a regular for loop to do everything your code does. If you don't care about performance, you could reverse the container and then use the range based for loop. Or you could do what you've done. I'm underwhelmed and most people would be. I'm really sorry.