In boost library and C++11 standard library, the atomic operations have memory order modifiers which limit the instruction reorder. However, JUCE's atomic facilities don't have this. So does JUCE atomic use the most stringent memory order assertion, so that I don't need to concern that?
According to the source file at https://github.com/julianstorer/JUCE/blob/master/modules/juce_core/memory/juce_Atomic.h, the implementation of Atomic class in JUCE uses compiler intrinsics or platform-specific calls that are equivalent to atomic operations with memory_order_seq_cst
ordering in C++11.