null references redux + Looney Tunes
Denis Koroskin
2korden at gmail.com
Sun Oct 4 15:38:58 PDT 2009
On Mon, 05 Oct 2009 01:03:01 +0400, bearophile <bearophileHUGS at lycos.com>
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?
>
> 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){...
>
> 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.
>
> Bye,
> bearophile
I don't see any reason why if (someComplexNumber) { ... } should be a
valid code, it hardly makes any sense for me.
In fact, I am trying to avoid if (foo) as much as possible (unless foo is
a bool, of course):
if (somePtr !is null) {
}
if (someInt != 0) {
}
but:
if (someCondition) {
}
I wouldn't like to sacrifice code clarity for saving a few keystrokes, but
maybe it's just me.
More information about the Digitalmars-d
mailing list