UDAs - Restrict to User Defined Types?

Adam D. Ruppe destructionator at gmail.com
Thu Nov 8 20:18:59 PST 2012


On Friday, 9 November 2012 at 03:45:11 UTC, Nick Sabalausky wrote:
> the *one* thing I hate about D ranges is that they don't force 
> you to explicitly say "Yes, I *intend* this to be an 
> InputRange" (what are we, Go users?).

Just a note, of course it still wouldn't *force*, but maybe it'd 
be a good habit to start writing this:

struct myrange {...}
static assert(isInputRange!myrange);

It'd be a simple way to get a check at the point of declaration 
and to document your intent.


Interestingly, we could also do this if the attributes could run 
through a template:

[check!isInputRange] struct myrange{}

@attribute template check(something, Decl) {
    static assert(something!Decl);
    alias check = Decl;
}

Same thing, diff syntax.


More information about the Digitalmars-d mailing list