Use false instead of 0 for the argument to __atomic_compare_exchange
Use __atomic_load(...__ATOMIC_RELAXED) to make intent clearer
Use .cpp instead of .c in config test

Since we're using a bool, defaulting to C++ (or otherwise enabling bool)
is mandatory.