On the Itanium/most ABIs, `std::atomic<T>` for a 64-byte trivially-copyable struct reports `is_lock_free() == false`. What does the implementation actually use to make operations on it atomic?
struct Big { char data[64]; };
std::atomic<Big> ab; // ab.is_lock_free() == false