Daemonize v0.1 - simple way to create cross-platform daemons

Meta via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Aug 31 14:36:02 PDT 2014


On Sunday, 31 August 2014 at 16:01:10 UTC, Philippe Sigaud via 
Digitalmars-d-announce wrote:
>> * Custom signals
>
> enum Signal : string
> { ... }
>
> @nogc Signal customSignal(string name) @safe pure nothrow
> {
>     return cast(Signal)name;
> }
>
> I didn't know you could have an enum and extend it with a cast 
> like this. Wow.

This is not a good thing. Enums are supposed to denote a 
*closed*, enumerated set of items. It's fine here (but IMO bad 
style) because the author expects there to be user-created values 
casted to Signal passed to functions/templates that expect a 
Signal, but this would wreak havoc on code that was expecting a 
valid enum value (by valid, I mean only one of the predefined 
enum values).


More information about the Digitalmars-d-announce mailing list