On Wednesday, 29 June 2016 at 15:18:53 UTC, Guido wrote:
I'm using a static class member in a parent class, but can't get the compiler to see it.

Class Grid{
  public:
  uint xdim;
}

Class Holder : Grid {
  uint var;
}

Any of the following should work, but none of them do:
Grid.xdim = 0;

grid = new Grid;
grid.xdim = 0;

holder = new Holder;
holder.xdim = 0;

This is the way static class vars were intended to work. What magics have I forgotten?

Platform
DMD latest, Windows 7
Visual D

The problem is actually much more profound. The classes need to be declared outside the main() scope. WTF?!?!?!

I put them in main() so they would be in scope. This seems like a *MAJOR* design flaw with the language, not to mention the compiler not giving useful feedback. This decision, if it is a decision, makes no sense given all the attention to scoping rules.

I'm not interested in trading one set of bad language decisions for another. Can someone fix this?

Reply via email to