C'est un peu une deuxième partie de la question, tous les propos de l'atomicité de l' std::shared_ptr
:
1.
Aussi loin que je peux dire, std::shared_ptr
est le seul pointeur intelligent en <memory>
c'est atomique. Je me demandais si il y a un non-atomique version de std::shared_ptr
disponible (je ne peux pas voir quoi que ce soit dans <memory>
, donc je suis également ouvert à toutes les suggestions en dehors de la norme, comme ceux de Boost). Je connais boost::shared_ptr
est également atomique (si BOOST_SP_DISABLE_THREADS
n'est pas défini), mais peut-être qu'il y a une autre alternative? Je suis à la recherche de quelque chose qui a la même sémantique que l' std::shared_ptr
, mais sans l'atomicité.
2. Je comprends pourquoi std::shared_ptr
est atomique; c'est plutôt agréable. Cependant, il n'est pas gentil pour chaque situation et C++ a toujours eu le mantra de "ne payez que pour ce que vous utilisez." Si je ne suis pas l'utilisation de plusieurs threads, ou si je suis à l'utilisation de plusieurs threads, mais je suis pas le partage de pointeur de la propriété dans les threads, atomique pointeur intelligent est exagéré. Ma deuxième question est pourquoi n'était-ce pas un non-atomique version de std::shared_ptr
fournis en C++11? (en supposant qu'il existe un pourquoi) (si la réponse est tout simplement "un non-atomique version a été tout simplement jamais considéré comme" ou "personne n'a jamais demandé un non-atomique version" c'est très bien!).
À la question #2, je me demandais si quelqu'un a jamais proposé un non-atomique version de shared_ptr
(soit à augmenter ou à la commission des normes) (à ne pas remplacer atomique version de shared_ptr
, mais à coexister avec elle) et il a été abattu pour une raison spécifique.