name lookup of 'i' changed for new ISO 'for' scoping

majenko:
The coding style starts with the user. If they don't know what they're doing, no amount of forced coding styles ... and warnings (which on the Arduino are pointless, because a) the line numbers are wrong, and b) people don't read them, they just post snippets of them on here and ask what is wrong), will make them better programmers.

But extra warnings help people who mostly do know what they are doing avoid making silly mistakes. I once had to convert 4 million lines of C++ code, written by programmers who were extremely competent, to be compatible with a new compiler and its associated libraries. At the same time, I increased the compiler warning level to near maximum. The new warnings revealed more than 200 bugs in the code. This was in code that had been tested and released.

If the line number in Arduino messages are wrong sometimes, that should be fixed. I find the error message line numbers are mostly OK.

majenko:
(which I abhor - coding styles are personal)

I guess you are either a hobbyist or a one-developer company, because that attitude is not workable in a multi-developer team. In safety-critical work, companies mostly pick one of a few standard coding rule sets such as MISRA-C, MISRA-C++ and JSF C++.

I've not commented on your other points because I agree with them at least in part.