[Issue 19130] New: Disabling opAssign in aliasing struct hides all opAssigns in subtyped alias

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Jul 30 21:31:02 UTC 2018


https://issues.dlang.org/show_bug.cgi?id=19130

          Issue ID: 19130
           Summary: Disabling opAssign in aliasing struct hides all
                    opAssigns in subtyped alias
           Product: D
           Version: D2
          Hardware: x86
                OS: Mac OS X
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: ali.akhtarzada at gmail.com

struct A {
    void opAssign(int) {}
}
struct B {
    A a;
    alias a this;
    @disable void opAssign(string) {};
}

void main() {
    B b;
    b = 3;
}

Produces Error: function `onlineapp.B.opAssign` is not callable because it is
annotated with @disable

This kind of functionality is very useful for proxy types that have an alias T
this, but want to disable copying (i.e this(this) and copy opAssign)

--


More information about the Digitalmars-d-bugs mailing list