inline constexpr size_t hardware_destructive_interference_size = implementation-defined;
struct keep_apart {
alignas(hardware_destructive_interference_size) atomic<int> cat;
alignas(hardware_destructive_interference_size) atomic<int> dog;
}; — end exampleinline constexpr size_t hardware_constructive_interference_size = implementation-defined;
struct together {
atomic<int> dog;
int puppy;
};
struct kennel {
// Other data members...
alignas(sizeof(together)) together pack;
// Other data members...
};
static_assert(sizeof(together) <= hardware_constructive_interference_size); — end example