On Thursday, 18 October 2018 at 19:26:39 UTC, Stanislav Blinov wrote:
On Thursday, 18 October 2018 at 19:04:58 UTC, Erik van Velzen wrote:
On Thursday, 18 October 2018 at 17:47:29 UTC, Stanislav Blinov wrote:

Doesn't work. No matter what you show Manu or Simen here they think it's just a bad contrived example. You can't sway them by the fact that the compiler currently *prevents* this from happening.

Manu said clearly that the receiving thread won't be able to read or write the pointer.

Yes it will, by casting `shared` away. *Just like* his proposed "wrap everything into" struct will. There's exactly no difference.


Casting is inherently unsafe. Or at least, there's no threadsafe guarantee.

Because int or int* does not have threadsafe member functions.

int doesn't have any member functions. Or it can have as many as you like per UFCS. Same goes for structs. Because "methods" are just free functions in disguise, so that whole distinction in Manu's proposal is a weaksauce convention at best.

You can still disagree on the merits, but so far it has been demonstrated as a sound idea.

No, it hasn't been.

I think you are missing the wider point. I can write thread-unsafe code *right now*, no casts required. Just put shared at the declaration. The proposal would actually give some guarantees.

Reply via email to