JamesM wrote:Software with a good build environment will be able to adopt to new toolchains with ease
Exactly my argument. Fixing to one known version of a compiler guarantees that your code won't be portable.
The idea is not fixing yourself to one known version of a compiler, but to enable others to use the
same version of the compiler, to rule out differences in compiler configuration as a source for dodgy problems. Or, to be able to fall back to a
known version of the compiler if your package manager updated to (hypothetical) GCC 6.2 and your build doesn't work anymore. Not because you want to
stay with the 5.x version, but to get the build working again, and
then working towards 6.2 compatibility.
(Try installing yesterday's version of your system compiler through apt-get. Good luck.)