N'est-ce pas ? atomic<bool>
redondant car bool
est atomique par nature ? Je ne pense pas qu'il soit possible d'avoir une valeur bool partiellement modifiée. Quand ai-je vraiment besoin d'utiliser atomic<bool>
au lieu de bool
?
Réponse
Trop de publicités?L'atomicité de certains types dépend exclusivement du matériel sous-jacent. Chaque architecture de processeur a des garanties différentes sur l'atomicité de certaines opérations. Par exemple :
Le processeur Intel486 (et les processeurs plus récents depuis) garantit que les opérations mémoire de base suivantes seront toujours exécutées de manière atomique :
- Lecture ou écriture d'un octet
- Lecture ou écriture d'un mot aligné sur une frontière de 16 bits
- Lecture ou écriture d'un double mot aligné sur une frontière de 32 bits
D'autres architectures ont des spécifications différentes sur les opérations qui sont atomiques.
Le C++ est un langage de programmation de haut niveau qui s'efforce de vous abstraire du matériel sous-jacent. Pour cette raison, la norme ne peut tout simplement pas permettre de s'appuyer sur des hypothèses de si bas niveau, car sinon votre application ne serait pas portable. Par conséquent, tous les types primitifs du C++ sont dotés de la fonction atomic
contreparties de la bibliothèque standard conforme à la norme C++11 prête à l'emploi.
- Réponses précédentes
- Plus de réponses