-
- Если добавлять volatile для всей памяти -- это будет треш, угар и содомия (при просмотре дизассемблера -- крайне неоптимальный код). Так делать не нужно. Потом возникает другая проблема -- вся область памяти становится несовместимой (без постоянных reinterpret_cast'ов) с обычными указателями и всеми интерфейсами в программе. Вообще volatile не нужен. Достаточно вставлять memory barrier. В случае кольцевого буфера: после записи данных и перед измененим указателя записи, и fk0(392 знак., 17.05.2020 14:20, ссылка)