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?