Boost has its own implementation of a spinlock and atomic counters inside its shared_ptr implementation, which is used by (at least) the signals2 implementation. By default, it prefers its own implementations over C++11 atomics.
Add two macro definitions to make it choose the std::atomics based implementations instead.
These macros are supported since Boost 1.56, and the behaviour is default since Boost 1.63.