Из того, что я читал из Herb Sutter и others вы считаете, что volatile
и параллельное программирование были полностью ортогональными понятиями, по крайней мере, до C/С++.
Однако в GCC реализация все функции-члены std::atomic
имеют квалификатор volatile
. То же самое верно в Anthony Williams реализация std::atomic
.
Итак, что делать, нужны ли переменные atomic<>
volatile
или нет?