This MR fixes a bug which arose when I tried to compile code against a C++ standard newer than
-ansi) - for an
unsigned int diag, the expression
-diag would wrap around.
A couple of other tests have been fixed, and the CI infrastructure has been expanded to run tests against different C++ standards, and also to run with and without optimisation.