On 1/5/18 6:04 PM, H. S. Teoh wrote:
On Fri, Jan 05, 2018 at 10:16:04PM +, Nordlöw via Digitalmars-d-learn wrote:
Why isn't
class X {}
class Y : X {}
X[] xs = cast(X[])(Y[].init);
compilable in safe D?
What's unsafe about such a cast?
Your original code snippet seems redu
On Fri, Jan 05, 2018 at 10:16:04PM +, Nordlöw via Digitalmars-d-learn wrote:
> Why isn't
>
> class X {}
> class Y : X {}
> X[] xs = cast(X[])(Y[].init);
>
> compilable in safe D?
>
> What's unsafe about such a cast?
Your original code snippet seems redundant. If you wanted an em
On 1/5/18 5:16 PM, Nordlöw wrote:
Why isn't
class X {}
class Y : X {}
X[] xs = cast(X[])(Y[].init);
compilable in safe D?
Hm... given that there is no other reference to xs, it should work. But
obviously you have a different example in mind, as this makes no sense?
This work
On Friday, 5 January 2018 at 22:16:04 UTC, Nordlöw wrote:
Why isn't
class X {}
class Y : X {}
X[] xs = cast(X[])(Y[].init);
compilable in safe D?
What's unsafe about such a cast?
class X {}
class Y : X {}
class Z : X {}
Y[] ys = Y[].init;
X[] xs = cast(X[])(ys);
xs[0] = new Z;
Why isn't
class X {}
class Y : X {}
X[] xs = cast(X[])(Y[].init);
compilable in safe D?
What's unsafe about such a cast?