bearophile wrote:
Walter Bright:

The big reason for moving it to a library type is the user defined
type capabilities of D have grown to the point where there is no
longer much of any advantage to having it built in.

If the compiler/language is now flexible enough to allow the creation
of a very good complex number, and the compilation time for such
library numbers is good enough, and they get compiled efficiently
enough, then removing them from the language is positive. But is the
compiler now good enough to allow to implement very good complex
numbers in the std lib?

Quoting myself: please name five remarkable complex literals.

One problem is to have a good syntax to define and use complex
numbers. Time ago I have even suggested to keep the complex syntax in
the compiler, and move the implementation in the std lib.

Another problem that I think is present still is the lack of a method
like opBool, that gets called in implicit boolean situations like
if(somecomplex){...

That's not opBool, it's opIf. Testing with if does not mean conversion to bool and then testing the bool.

A third and more serious question is if the library complex type
avoids the pitfalls discussed in the page about built-in complex
numbers in the digitalmars site.

I'd love to hear more about that. I've asked several times about it and never got a clear answer. My feeling is that an obscure mathematician burped during a conference in the 1960s and was overheard and misunderstood by someone who spread the news that complex numbers must be built-in, or else.


Andrei

Reply via email to