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.
İlgili konular
- 1. std :: atomic
- 2. std :: atomic <std :: chrono :: high_resolution_clock :: time_point>
- 3. std :: atomic <imzasız int>
- 4. Std :: atomic için ++ atomik <int>
- 5. MIPS: Tamsayı Çarpma ve Bölme
- 6. Neden std :: protect yok?
- 7. std :: function ve std :: mem_fn
- 8. std :: vector ve std :: dk davranış
- 9. std :: atomic <int*> olmalıdır ?: bir karşılaştırma ve takas döngüsü yapmak mı?
- 10. std :: vector <std :: unique_ptr hatası < T >>
- 11. Neden std :: forward kullanmıyorsunuz?
- 12. `std` modülü neden silinemedi?
- 13. Neden std :: is_same
- 14. Neden ADL, std :: get
- 15. Neden std :: mutex, CRITICAL_SECTION
- 16. std :: cin.ignore (std :: numeric_limits <std :: streamsize> :: max(), '\ n') #include kullanırken hata <Windows.h>
- 17. Karıştırma std :: hareket() ve std :: iplik
- 18. std :: fonksiyonu ve std :: bağlama davranışı
- 19. std :: ratio neden karşılaştırma operatörlerini desteklemiyor?
- 20. html'de çarpma ve bölme sembolü nasıl getirilir?
- 21. CSS calc() - Birim değeriyle çarpma ve bölme
- 22. std :: async neden yapısını ve argümanlarını kopyalar?
- 23. std :: thread std :: async, BÜYÜK performans kazancı sağlar. Nasıl mümkün olabilir?
- 24. Neden numpy std() matlab std() öğesine farklı bir sonuç verir?
- 25. tekil kalıbı ve std :: unique_ptr
- 26. İşaretçi typedef neden std :: vector :: data()? std :: vektör API olarak
- 27. std :: vector <uchar> `std :: ostream` içine nasıl kaydedilir?
- 28. Çarpma ve bölme operatörleri etrafındaki boşluklar IDE tarafından nasıl silinir, nasıl saklanır?
- 29. Std set kopya ataması ile özel sınıf nasıl oluşturulur?
- 30. std :: copy_n neden std :: size_t yerine bir şablon parametresi alıyor?
Bu benim şüphemdi. Sanırım bu yüzden bitsel AND, OR ve XOR ops'ları var, ama biraz değişmeyenler var. – juanchopanza