Am 29.03.2013 20:29, schrieb Jonathan M Davis:
No. -w makes it so that warnings are errors, so you generally can't make
anything a warning unless you're willing for it to be treated as an error at
least some of the time (and a lot of people compile with -w), and this sort of
thing is _supposed_ to work without a warning - primarily because if it
doesn't, you're forced to cast all over the place when you're dealing with
both signed and unsigned types, and the casts actually make your code more
error-prone, because you could end up casting something other than uint to int
or int to uint by accident (e.g. long to uint) and end up with bugs due to
that.

Reading this tells me two things:

1) The D-Cast is seriously broken, the default behavior should not be one that "breaks" stuff if you don't use it right. I personally really like the idea of having different types of casts. Some of which still doe checks and other that just do what you want because you know what yu are doing. 2) The library needs something like an int_cast which checks casts from one integer type to another and asserts / throws on error. (For an example see https://github.com/Ingrater/thBase/blob/master/src/thBase/casts.d#L28)

Kind Regards
Benjamin Thaut

Reply via email to