Я просмотрел стандарт, но не мог найти никаких указаний на то, что просто запись в память будет считаться наблюдаемым поведением. Если нет, это означало бы, что скомпилированный код не должен фактически записываться в эту память. Если компилятор решил оптимизировать такой доступ, что-либо, связанное с памятью карты или общей памятью, может не сработать.
1.9-8, по-видимому, определяет очень ограниченное наблюдаемое поведение, но указывает, что реализация может определить больше. Можно ли предположить, что любой качественный компилятор будет рассматривать изменение памяти как наблюдаемое поведение? То есть, это может не гарантировать атомарность или упорядочение, но гарантирует, что данные в конечном итоге будут записаны.
Итак, я упустил что-то в стандарте или написал в память только то, что решает компилятор?
Заявления из текущего или стандарта С++ 0x хороши. Обратите внимание: я не говорю о доступе к памяти через функцию, я имею в виду прямой доступ, например, запись данных в указатель (возможно, извлечение через mmap или другую библиотечную функцию).