title: CMPXCHG16B and MSVC Implementation of <atomic> not the default?
body: <p>It seems that for CMPXCHG16B to be used, one has to define _STD_ATOMIC_ALWAYS_USE_CMPXCHG16B = 1
  so that these instructions are used.</p>
  <p>Why is this the default? I would have never found out about this unless I read the whole atomic.h header either.</p>
  <p>What other global defines in the STL are there? Is there a list to review so one can reliably be aware of these implementation details?</p>