D's type classes pattern ?
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Mar 24 14:49:23 PDT 2015
On 03/24/2015 08:50 AM, matovitch wrote:
> Lets say I want to implement some generic algorithm. I would like
> to checks the types passed to my algorithm implements a specific
> interface.
I think you are looking for template constraints. Look at isInputRange's
implementation:
https://github.com/D-Programming-Language/phobos/blob/master/std/range/primitives.d#L143
Then you can do:
void foo(Range)(Range range)
if (isInputRange!Range) // <--
{
// ...
}
I have some explanation and examples here:
http://ddili.org/ders/d.en/templates_more.html#ix_templates_more.named%20template%20constraint
Ali
More information about the Digitalmars-d-learn
mailing list