Andrei Alexandrescu: > What I think this is lacking is the ability to > predefine flags that are a combination of other flags. For example, some > file open flags could define DEFAULT_READ as READ|SHARED. I'm not sure > how to express that.
It's not an enum, it's a struct, that contains a single value (for example an uint). The construct defines at compile-time a property for each given name. Then the assign operator tests that the input can be any of the possible ORs of the flags, otherwise asserts in not release mode. So I think it can be done. But it will come out a good amount of CTFE code. Bye, bearophile