This works:

```
class S {
    int n, m;
    int sum() { return n + m; }
    Inner!(sum) a;

    class Inner(alias f){
        auto get() {
            return f();
        }
    }
}
```

This doesn't:

```
struct S {
    int n, m;
    int sum() { return n + m; }
    Inner!(sum) a;

    struct Inner(alias f){
        auto get() {
return f(); // Error: this for sum needs to be type S not type Inner!(sum)
        }
    }
}
```

The only difference between the two is one one uses classes, the other uses structs. My question is, under the current semantics of D, shouldn't the two work the same? That is, shouldn't the inner struct in the second example have an implicit context reference to the outer struct? Is this a bug?

Thanks for the help,
Mike

Reply via email to