On Friday, 12 July 2013 at 04:42:28 UTC, Jonathan M Davis wrote:
Now, it's probably possible to use static constructors to use global mutable state to intialize all of those IDs when the program starts up, which would initialize the IDs to incrementing values, so they could be immutable if you
wanted, but that would still be at runtime.

- Jonathan M Davis

As a follow up, here's what it looks like, and it works perfectly:

alias size_t component_type;

class Component(T) : BaseComponent {
        static immutable component_type component_type_id;

        static this() {
                component_type_id = component_type_counter++;
        }
}

class BaseComponent {
        static component_type component_type_counter;
}

Reply via email to