I have a problem where I want to store rebindable references to other objects, but I also want to ensure those objects are immutable. Basically, the Rebindable template in std.typecons should do the job, but it appears that it does not work with forward references...

Going further, I've made this simple test case and I'm left wondering if there is a way for the compiler to make that work in the future. Basically, the definition of each class depends on the other class. Can the compiler instantiate a template using a partially defined class? One of the template has to be instantiate before the other, obviously.

import std.typecons;

class A {
        Rebindable!(const B) r;
}

class B {
        Rebindable!(const A) r;
}

I'm not sure if I really want to use this pattern; this is just an experiment I made. But it looks quite limiting not to be able to do that.

--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to