Fallback 'catch-all' template functions
Manu via Digitalmars-d
digitalmars-d at puremagic.com
Wed Aug 31 22:37:50 PDT 2016
So, consider a set of overloads:
void f(T)(T t) if(isSomething!T) {}
void f(T)(T t) if(isSomethingElse!T) {}
void f(T)(T t) {}
I have a recurring problem where I need a fallback function like the
bottom one, which should be used in lieu of a more precise match.
This is obviously an ambiguous call, but this is a pattern that comes
up an awful lot. How to do it in D?
I've asked this before, and people say:
void f(T)(T t) if(!isSomething!T && !isSomethingElse!T) {}
Consider that more overloads are being introduced by users spread out
across many modules that define their own kind of T; this solution is
no good.
More information about the Digitalmars-d
mailing list