On 3 September 2016 at 11:38, Andrei Alexandrescu via Digitalmars-d <digitalmars-d@puremagic.com> wrote: > On 9/3/16 2:41 AM, Manu via Digitalmars-d wrote: >> >> On 3 September 2016 at 00:18, Xinok via Digitalmars-d >> <digitalmars-d@puremagic.com> wrote: >>> >>> >>> In the past, I have suggested using the "default" keyword to specify a >>> fallback function of this kind. I think it's a useful pattern for generic >>> algorithms that have optimized variants on specific types for >>> performance. >>> >>> void f(T)(T t) if(isSomething!T) {} >>> void f(T)(T t) if(isSomethingElse!T) {} >>> void f(T)(T t) default {} >> >> >> It's an interesting idea... flesh out a DIP? > > > We're better off without that. -- Andrei
Then we need a decent way to do this. As I've just expressed in the ADL thread, this whole pattern, which is alleged as one of D's core offerings; templates + UFCS -> pipeline programming (or 'component' programming as Walter likes to call it), is loaded with issues, and other than SFINAE being a pita, and UFCS coming to C++ 'soon'™, the whole thing is much easier in C++ right now.