 typedef volatile std::atomic<Atomic00>* AtomicLocation00; static_assert(sizeof(*(AtomicLocation00) nullptr) == sizeof(Atomic00),               "incompatible 00-bit atomic layout");  inline Atomic00 NoBarrier_CompareAndSwap(volatile Atomic00* ptr,                                          Atomic00 old_value,                                          Atomic00 new_value) {   ((AtomicLocation00)ptr)       ->compare_exchange_strong(old_value,                                 new_value,                                 std::memory_order_relaxed,                                 std::memory_order_relaxed);   return old_value; }  inline Atomic00 NoBarrier_AtomicExchange(volatile Atomic00* ptr,                                          Atomic00 new_value) {   return ((AtomicLocation00)ptr)       ->exchange(new_value, std::memory_order_relaxed); }  inline Atomic00 NoBarrier_AtomicIncrement(volatile Atomic00* ptr,                                           Atomic00 increment) {   return increment +          ((AtomicLocation00)ptr)              ->fetch_add(increment, std::memory_order_relaxed); }  inline Atomic00 Barrier_AtomicIncrement(volatile Atomic00* ptr,                                         Atomic00 increment) {   return increment + ((AtomicLocation00)ptr)->fetch_add(increment); }  inline Atomic00 Acquire_CompareAndSwap(volatile Atomic00* ptr,                                        Atomic00 old_value,                                        Atomic00 new_value) {   ((AtomicLocation00)ptr)       ->compare_exchange_strong(old_value,                                 new_value,                                 std::memory_order_acquire,                                 std::memory_order_acquire);   return old_value; }  inline Atomic00 Release_CompareAndSwap(volatile Atomic00* ptr,                                        Atomic00 old_value,                                        Atomic00 new_value) {   ((AtomicLocation00)ptr)       ->compare_exchange_strong(old_value,                                 new_value,                                 std::memory_order_release,                                 std::memory_order_relaxed);   return old_value; }  inline void NoBarrier_Store(volatile Atomic00* ptr, Atomic00 value) {   ((AtomicLocation00)ptr)->store(value, std::memory_order_relaxed); }  inline void Acquire_Store(volatile Atomic00* ptr, Atomic00 value) {   ((AtomicLocation00)ptr)->store(value, std::memory_order_relaxed);   MemoryBarrierInternal(); }  inline void Release_Store(volatile Atomic00* ptr, Atomic00 value) {   ((AtomicLocation00)ptr)->store(value, std::memory_order_release); }  inline Atomic00 NoBarrier_Load(volatile const Atomic00* ptr) {   return ((AtomicLocation00)ptr)->load(std::memory_order_relaxed); }  inline Atomic00 Acquire_Load(volatile const Atomic00* ptr) {   return ((AtomicLocation00)ptr)->load(std::memory_order_acquire); }  inline Atomic00 Release_Load(volatile const Atomic00* ptr) {   MemoryBarrierInternal();   return ((AtomicLocation00)ptr)->load(std::memory_order_relaxed); }  #