as we know: load with memory_order_acquire, store with memory_order_release However, I found with gcc4.8.2, open -O2, a compile error throwed, /usr/include/c++/4.8.2/atomic:199:9: error: invalid memory model for '__atomic_store' but if close -O2, the error disappeared
further more, if with gcc8.3.0, the error would throwed even when with -O2
So what happend? how to explain this?