C++ devs: If you undefine __STRICT_ANSI__ I will break your code. Seriously. It won't work with the next release of GCC. Just stop it.
It's stupid anyway. If you want non-strict mode, just use a -std=gnu++NN option instead of
-std=c++NN -U__STRICT_ANSI__
Legendary composer Harold Budd has passed from this world at 84. He left behind an endless treasure trove of unimaginably beautiful music that enriches our lives every day and will bless generations to come. Our hearts go out to his family on this sad day. Rest in peace, Harold.
Recently, we've also implemented the expected resolution of DR 1914: Duplicate standard attributes. Wherefore code like
[[noreturn, noreturn]] void 💩();
no longer causes a compilation error.
GCC 11 has been fixed to no longer require that a lambda with <template-parameter-list> has a lambda-declarator, meaning you can omit the () when creating a template lambda.
I've extended GCC's -Wrange-loop-construct: now it warns when a loop var in a range-based for is initialized with a value of a different type resulting in a copy. E.g.,
int arr[10];
for (const double &x : arr) { }
where in every iteration we create and destroy a temporary value.