On Tuesday, 24 March 2015 at 16:44:54 UTC, weaselcat wrote:
On Tuesday, 24 March 2015 at 15:51:00 UTC, matovitch wrote:
Hi,
It's been a long time since I coded some d code... sorry I take
the lazy way asking for advices. :D
Lets say I want to implement some generic algorithm. I would
like
to checks the types passed to my algorithm implements a
specific
interface.
interface IStuff(Stuff)
{
void foo();
}
class TypeClass(T, I) : I(T)
{
alias this T;
}
void myAwesomeAlgo(Stuff) (TypeClass!(Stuff, IStuff) stuff)
{
stuff.foo();
}
Well it seems that I have worked out my question in trying to
formulate it...Would something like this work ?
interface Foo{
}
void Bar(T : Foo)(T t){
}
but interfaces enable runtime polymorphism, you can just accept
the interface itself
void Fun(Foo foo){
}
Thanks, just to be clear :
void Bar(T : Foo)(T t){
}
is the same as
void Bar(T)(T t) if (is(T == Foo)){
}
and it is checked only at compile time ? (for the runtime I know
that what interface were meant for ;)).