On 21/01/2015 12:58 a.m., RuZzz wrote:
Alexandrescu "The_D_Programming_Language"
page 264: 7.1.10 Subtyping with structs. The @disable Attribute
import std.stdio;
...
unittest {
auto a = Final!Widget(new Widget);
a.print(); // Fine, just print a
auto b = a; // Fine, a and b are bound to the same Widget
a = b; // Error!
// opAssign(Finai!Widget) is disabled!
a = new Widget; // Error!
// Cannot assign to rvatue returned by get()!
}

What is the "Final" in the code?

I'm guessing something along these lines:

struct Final(T) {
        private T value;
        alias value this;

        this(T value) {
                this.value = value;
        }

        @disable
        void opAssign(T)(T t) {}
}

Reply via email to