digitalmars.D.bugs - [Issue 17664] New: Deprecate implicit casting between shared and
- via Digitalmars-d-bugs (25/25) Jul 19 2017 https://issues.dlang.org/show_bug.cgi?id=17664
https://issues.dlang.org/show_bug.cgi?id=17664 Issue ID: 17664 Summary: Deprecate implicit casting between shared and unshared Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: spec Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: dfj1esp02 sneakemail.com --- struct A { int handle; } shared A b; void f(A a){ b=a; } --- This shouldn't compile. Value types include resource identifiers, which may have threading requirements, e.g. GUI widget handles and OpenGL handles, assuming they are thread-safe and making them implicitly shared is incorrect. union A { int handle; int* dummy; } This can't work as a workaround because it has different size than the handle. --
Jul 19 2017