(I'll ask to remove one limitation):

http://d.puremagic.com/issues/show_bug.cgi?id=9489


    typeof(scoped!Foo(1))[10] foos; // Not initialized.

    foreach (i, ref f; foos)
        // f = new Foo(i * 10);
        // f = scoped!Foo(i * 10);
        f.x = i * 10;

What's the right/good way to initialize a scoped class instance? Currently this doesn't work:


import std.typecons;

class Foo {
    int x;
    this(int x_) { initialize(x_); }
    void initialize(int x_) {
        this.x = x_;
    }
}

void main() {
    typeof(scoped!Foo(1))[10] foos;
    foreach (i, ref f; foos)
        f.initialize(i * 10);
}


Bye,
bearophile

Reply via email to