On Sunday, 9 April 2017 at 09:36:53 UTC, Martin Nowak wrote:
On Sunday, 9 April 2017 at 08:56:52 UTC, Atila Neves wrote:
I benchmarked RefCounted against C++'s std::shared_ptr
comparing ldc to clang using both shared and non-shared
payloads in D. std::shared_ptr is faster (I've never written a
smart pointer before), but the advantage of non-atomic
operations makes my D implementation just a bit faster when
non-shared. I think with some work it can be significantly
faster without any loss of thread safety.
You know you can overload `this(this) shared` do you? My plan
was to use that for atomic RC, so that ppl. can use
`shared(RefCounted)` when necessary.
I did not. Thanks for telling me!
The way I wrote it RefCounted!(shared T) works - RefCounted
doesn't have to be shared itself, but I guess it could be.