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