Yes. The C++ Standard says (29.3/10):
Atomic read-modify-write operations shall always read the last value (in the modification order) written before the write associated with the read-modify-write operation.
Both exchange
and successful compare_exchange_{weak,strong}
operations are read-modify-write operations.