[Issue 9904] typeof(null) can be casted to aggregate type if .sizeof equals size of pointer
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Apr 8 10:31:57 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9904
--- Comment #3 from Andrej Mitrovic <andrej.mitrovich at gmail.com> 2013-04-08 10:31:56 PDT ---
(In reply to comment #2)
> (In reply to comment #1)
>
> > Those should really use size_t to reproduce on all systems:
> >
> > > struct S1
> > > {
> > > size_t x;
> > > }
> > >
> > > struct S2
> > > {
> > > size_t x;
> > > byte b;
> > > }
>
> Why is that cast a problem/bug? Maybe there is no compiler bug here.
It may not do what the user expects. For example they might think this is a
good way to initialize the struct to its default value, but it's wrong:
import std.math;
struct S
{
float x;
}
void main()
{
auto s1 = S.init;
auto s2 = cast(S)null;
assert(isnan(s1.x));
assert(isnan(s2.x)); // fails
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list