There is a Standards organization that set the "rules" for C++ and these rules are incorporated into new releases of GCC, the compiler/linker used under ArduinoIDE.vde wrote:That bugs are very rare, and moreover a lots of programs which works fine after 5.4 now even don't starts after 6.1. Surprise
The ArduinoIDE folks have been steadily moving the original IDE closer and closer to the ever-moving "standard" for years... for some, it has been like light speed and for others, it has been a snail-pace!
For the Arduino Community, changes can be difficult; stuff works OK in an older version but the IDE tosses all manner of errors/warning on just a simple '.1' upgrade. But, this is the price the programmer pay for evolution. If we do not like it; we should use professional tools that allow us to "tune" the compiler/linker and often even suggest the correct revisions necessary to comply with changing standards.
Now, the Arduino folks know the truth; so they allow one to download older versions of the IDE+tools. I always specify the ArduinoIDE version for my code ZIP in my online sources - thus, if the reader that download my source is having an issue, s/he can download the IDE/tools to successfully compile my project from arduino.cc
A large part of being more than a weekend coder is understanding the full responsibility of dealing with evolving tools and coding standards. It's part of growing-up and maturing to understand the scope of responsibility that a programmer has for their code. In a large corporate environment, a large amount of the program maintenance cycle is dealing with testing and code 'tweaking' that is necessary during the program lifecycle.