Flag proposal
Steven Schveighoffer
schveiguy at yahoo.com
Sat Jun 11 18:49:21 PDT 2011
On Sat, 11 Jun 2011 17:32:56 -0400, David Nadlinger <see at klickverbot.at>
wrote:
> On 6/11/11 11:20 PM, Jonathan M Davis wrote:
>> 1. Programmers following this idiom (including the Phobos devs) end up
>> creating enums with yes and no values and are effectively identical to
>> other
>> enums except for their names. So, we end up with a fair bit of
>> boilerplate
>> code just to pass a strict boolean value.
>
> s/fair/tiny/, imho:
>
> ---
> /// ditto.
> enum SomeFlag { enable, disable }
> ---
A big problem with this (and enums in general), what if your flag function
is defined inside a struct or class?
struct MyStruct
{
/// This function ROCKS!
void someKickAssFunction(MoreBitchin moreBitchin) {}
/// ditto
enum MoreBitchin { yes, no }
}
// the call, not so much.
s.someKickAssFunction(MyStruct.MoreBitchin.yes);
In other words, in order for your doc trick to work, member functions have
to require an additional namespace to the enum.
IMO, however, we need a better way to access the enum values without
specifying the entire namespace. The difficult part is to do it in a way
which doesn't conflict with normal symbols.
Of course, such an improvement would pull the rug from this Flag
proposal...
-Steve
More information about the Digitalmars-d
mailing list