Matt wrote:
You're right - it's a big departure from C++ where casting is to be
avoided if possible, and you're right that the cast isn't safe in
general.  It's semi-reasonable because it's safe unless you cast
somewhere and the C++ multi-threaded programming model is unsafe
anyway.  But it's bad that the bugs introduced can be quite far from
the casts (e.g. if cast-to-unshared data is placed in a global
thread-local somewhere).

It's not all bad. The huge advantage with "shared" is when you do a code review, it points you to where the potential trouble spots are. With the implicit sharing in C/C++, the whole program is a trouble spot.

Reply via email to