On Saturday, 11 July 2026 at 11:04:34 UTC, Nick Treleaven wrote:

I forgot to reply to that. Don actually said C and D are different:

D can avoid the need for a pure imaginary type, because *D guarantees constant folding, whereas C does not*.

While it is only my opinion, ...

I would agree 100% s a computer scientist and 200% if I was a maintainer of a compiler. But I would argue that this is outweighed by the clarity that an imaginary type provides to an end user (and people writing documentation). I would also apologize for my opinion to the person writing the compiler because it means more work. D certainly has lots of advantages over C. That said, in one of Walter's recent presentations, he notes that an attribute of Elegant Code is orthogonality. And having real types, imaginary types and complex types is an example of that. As an important aside, I will note that the line containing the link to that presentation on Walter's home page, the link to the Elegant D symposium has a typo, i.e. instead of dlangsymposium.com, it says dlangsymposiumlcom. Oops. Someone's, maybe Walter's, fat fingers typed the 'elle' key rather than the 'dot' key which is just below it on the keyboard. I regularly type m instead of a comma for the same reason. Sorry, I digress.

I could not understand why Don thought the C99 imaginary type is a hack. I know one of the authors of the document supporting its inclusion very well and I have rarely had cause to question his insight. And the other author is a legend and a winner of the Turing award (not that such an award makes him infallible, just a lot wiser than I).

That use of UFCS to allow one to write "4 + 2.i" highlights the power of D. Nice one.

Thanks heaps for the feedback and spending time replying to my questions. Coming back to D after 15+ years is a steep relearning curve.

Reply via email to