Considerare questi due varianti:Qual è la differenza tra carico atomico esplicito/negozio e operatore usuale = e operatore T?
std::atomic<int> a;
a = 1;
int b = a;
e
std::atomic<int> a;
a.store(1);
int b = a.load();
vedo dalla documentazione che il secondo è completamente atomica, ma non capisco quando devo usare quali e qual è la differenza in dettaglio.
Vale la pena notare che 'memory_order_seq_cst' è il più forte ordine di memoria. Non c'è motivo di specificarne uno diverso, se non per migliorare le prestazioni in situazioni in cui non è necessaria una coerenza sequenziale completa. – Sneftel
Preferisco 'load' /' store' perché indica che la variabile è atomica, migliora la leggibilità del codice! –