On 03/28/2010 06:03 PM, bearophile wrote:
The construct defines at compile-time a property for each given name.<
A costant (enum) not a property, sorry.
So this:
alias Flags!q{ A, B, C } Foo;
Becomes equivalent to:
struct Foo {
enum uint A = 1<< 0;
enum uint B = 1<< 1;
enum uint C = 1<< 2;
private uint _data;
// operators defined here, with full input tests:
// = == | |= in& &= opBool
...
}
Foo f = Foo.A | Foo.B;
Now f._data contains the or of the two flags...
Bye,
bearophile
Yah but let's say A|B is used very often so I want to call it AB. How do
I specify in the definition of Flags such a definition? I guess
alias Flags!q{ A, B, C, AB = A|B } Foo;
which makes parsing rather difficult.
Andrei