dsimcha wrote:
== Quote from Andrei Alexandrescu (seewebsiteforem...@erdani.org)'s article
ulong x0;
static assert(!__traits(compiles, -x0));
uint x1;
static assert(!__traits(compiles, -x1));
ushort x2;
static assert(!__traits(compiles, -x2));
ubyte x3;
static assert(!__traits(compiles, -x3));
Sounds good?
Andrei

The more you bring up features to give the axe to, the more I find it funny 
that,
not being a very good language lawyer, I wasn't aware that half of these 
features
existed in the first place.  This is one of them.  Yes, definitely get rid of 
it.
 It makes absolutely no sense.  If you want to treat your number like a signed
int, then it should require an explicit cast.

I said the same. Walter's counter-argument is that 2's complement arithmetic is an inescapable reality that all coders must be aware of in D and its kin. Negation is really taking the two's complement of the thing. The fact that the type was unsigned is not of much import.

Andrei

Reply via email to