[Issue 11343] [2.064 beta] Error: multiple field initialization
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Oct 30 01:52:45 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=11343
--- Comment #12 from rswhite4 at googlemail.com 2013-10-30 01:52:32 PDT ---
(In reply to comment #11)
> (In reply to comment #10)
> > Couldn't the compiler to this dirty trick for me?
> > If he found such multiple init case, he could rewrite the code. So that this
> > code:
> > ----
> > this(int x, size_t i) {
> > arr[0] = x;
> > arr[1] = x + 1;
> > arr[i] = x + 2; // which index will be initialized in runtime?
> > }
> > ----
> >
> > if rewritten to this:
> >
> > this(int x, size_t i) {
> > Unqual!typeof(arr) __arr = null;
> >
> > __arr[0] = x;
> > __arr[1] = x + 1;
> > __arr[i] = x + 2;
> >
> > this.arr = __arr; /// only _one_ assignment
> > }
>
> That would be a bad behavior when the size of arr field is quite big, because
> it will silently consume stack memory. I can believe someone will hate it.
Who?
It's the best approach I have currently. There must be a way to weaken the
effects of this change.
--
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