Модель памяти C ++ 11 и доступ к различным членам одной и той же структуры в разных потоках
Предположим, выу нас есть следующие определения:
struct X
{
char a, b;
};
X x;
А теперь предположим, что у вас есть два потока, один из которых читает и пишетx.a
но никогда не получит доступx.b
в то время как другой читает и пишетx.b
но никогда не получит доступx.a
, Ни один из потоков не использует блокировки или другие примитивы синхронизации. Гарантируется ли это в C ++ 11? Или он считается доступом к одному и тому же объекту и, следовательно, нуждается в блокировке?