One advantage of using abstract OO superclasses is that you can implement a lot of functionality on the superclass and save yourself some work when implementing concrete subclasses. However, virtual functions can be slow. In Rust you can do the same with "traits", but statically.

What is the best way to create generic interfaces with generic implementations of algorithms in D that works with structs (so you don't have to require Heap allocation with classes)?

I imagine one way to do it is using mixins in the concrete types, then the "abstract type" would essentially emerge as duck-typing. But that is really doing it on the wrong level and it is easy to make mistakes, so the typing becomes weak.

What would the best pattern in D be for doing statically resolved OO, with abstract super types that specify behaviour, over structs?

Reply via email to