tam uzmanlık :: entegre tip atom gibi +=
, -=
aritmetik bileşik atamasında sağlar, ancak herhangi bir *=
veya /=
. Standart bunu belirtir ama görebildiğim kadarıyla hiçbir sebep yoktur. Atomik Operasyonlar Kütüphanesi bölümünün arkasındaki mantığa aşina olan biri buna biraz ışık tutabilir mi?Neden std :: atomic <integral> uzmanlıklarını çarpma ve bölme ataması operatörleri sağlar? std
7
A
cevap
9
Bunun donanım ile ilgili olduğunu düşünüyorum. Pek çok platformda +=
'u işlemek için atomik var, ancak *=
ürününü bilmiyorum. Bunu kilitleme yoluyla uygulamak basit olurdu, ancak std::atomic
'un arayüzü, çok pahalı işlemlerle bir şekilde ucuz olan aynı seviyedeki operasyonlarda karışıyordu.
Bu benim şüphemdi. Sanırım bu yüzden bitsel AND, OR ve XOR ops'ları var, ama biraz değişmeyenler var. – juanchopanza