Years ago we introduced work-arounds for C++ compilers that didn’t properly support the std:: namespace (probably PGI, IBM, Cray). It turns out these work-arounds violate the C++ standard since the re-define global identifiers such as “isnan”. I found out today that they actually break the reduction operators in CarpetX when “-O2” is used (“-O0” is fine).
These versions of these compilers are not relevant any more, and these work-arounds can now be removed. This they cause problems and since they violate the C++ standard, I suggest that we do so.