История изменений
Исправление xaizek, (текущая версия) :
Если вопрос про модели памяти, то причем тут пример кода?
К тому, что стандарт языка определяет эту модель, а стандарт этот код и описывает.
с++ подразумевает, что если что в память записано что-то одним потоком, то второй таки может прочитать. (С единственной оговоркой по volatile).
Прочитать может, а вот будет там старое или новое значение другой вопрос. И да, модель памяти в стандарте начиная с C++11.
Если же железо работает с памятью как-то по другому, то єто не проблемы языка.
Язык он как бы не в вакууме, программы на этом языке работают на железе, поэтому стандарт описывает как конструкции языка должны себя вести на таком железе.
Исправление xaizek, :
Если вопрос про модели памяти, то причем тут пример кода?
К тому, что стандарт языка определяет эту модель, а стандарт этот код и описывает.
с++ подразумевает, что если что в память записано что-то одним потоком, то второй таки может прочитать. (С единственной оговоркой по volatile).
Прочитать может, а вот будет там старое или новое значение другой вопрос. И да, это начиная с C++11.
Если же железо работает с памятью как-то по другому, то єто не проблемы языка.
Язык он как бы не в вакууме, программы на этом языке работают на железе, поэтому стандарт описывает как конструкции языка должны себя вести на таком железе.
Исходная версия xaizek, :
Если вопрос про модели памяти, то причем тут пример кода?
К тому, что стандарт языка определяет эту модель.
с++ подразумевает, что если что в память записано что-то одним потоком, то второй таки может прочитать. (С единственной оговоркой по volatile).
Прочитать может, а вот будет там старое или новое значение другой вопрос. И да, это начиная с C++11.
Если же железо работает с памятью как-то по другому, то єто не проблемы языка.
Язык он как бы не в вакууме, программы на этом языке работают на железе, поэтому стандарт описывает как конструкции языка должны себя вести на таком железе.