On Sunday, 29 October 2023 at 08:55:24 UTC, Dmitry Ponyatov wrote:
Maybe someone played in this topic, and can give some advice:
is D language with its OOP without multiple inheritance and maybe other semantic limitations able and good enough to be used with these books mechanics?

You can have multiple interfaces, and interfaces can have default implementation for its methods. What really prohibited is to have multiple base classes as this will over complicate data layout and the compiler without much benefit (if any at all).

What are semantic limitations you talking about? D is much more expressive than C++, there is also CTFE and code generation with mixins.

Mixins can do pretty much anything preprocessor can, except they can't inject self-invocable code, you always need an explicit "mixin(foo)" statement, and that's the only limitation compared to preprocessor.
IIRC Vibe.d using them for template engine.

Also D has raw strings, just like this
https://github.com/buggins/dlangui/blob/master/examples/dmledit/src/dmledit.d#L73

Which again with mixins can be turned into DSL(domain specific language), with this you can write your own template that parses that string and for example builds a widget tree out of it, like this
https://github.com/buggins/dlangui/blob/master/examples/helloworld/src/helloworld.d#L20

Reply via email to