On Wednesday, 6 September 2017 at 23:20:41 UTC, EntangledQuanta wrote:
So, no body thinks this is a useful idea or is it that no one understands what I'm talking about?

I think it may be a good use, although I haven't invested so much time looking into your particular application.

It looks like a normal, sane use of templates. This is what they are primarily intended for. And yes, combining them with mixins provide some great possibilities that are not available in many other languages.

Have you seen how D recommends avoiding duplicate code when overloading operators, also by means of mixins:
https://dlang.org/spec/operatoroverloading.html#binary

I thought you may come from C since you mention void pointers as an alternative. But that is not considered the normal way in D, your new way is far better, and more "normal".

It looks you may be mistaking what happens at "run-time", or it may be a way of speaking. In D, templates called with different types generate different code already at compile-time -- even if in the source code you write, it all looks and works so polymorphically. This is a similar approach as in C++ and it's why D generics are called "templates"; as opposed for example to C#, where generics are not compiled into static types and keep existing at run-time. Andrei discusses both approaches in his book, and why the first one was chosen for D.

Reply via email to