On Saturday, 14 January 2017 at 15:41:01 UTC, Dmitry Olshansky wrote:
That is C++ smart_ptr has to be atomic, while its D counter part may safely be non-atomic because everything is TLS be default.

I assume you mean std::shared_ptr. The reference counting semantics are atomic, but the I don't think the compiler is required to if it provably isn't shared. There are also ways to get around it if needed (you only need atomic count when you enter or leave a context, e.g. thread).

Of course, there are C++ single threaded alternatives with intrusive ref counting, which I believe is what D is going for. shared_ptr is non-intrusive (doesn't affect allocation or object types).

Reply via email to