Andrei Alexandrescu wrote:
D has operator >>> which means "unsigned shift to the right", inherited from Java. But it doesn't need it because D has unsigned types, which can be used to effect unsigned shift. (Java, lacking unsigned types, had no other way around but to define a new operator.)

It's there because in C/C++ one often winds up writing:

   (unsigned)x >> i;

to ensure that one gets an unsigned right shift. The problem is that the cast can have many other side effects if x is not of type int. For example, if x is a struct with an overloaded cast operator. Or if x is a long and you just lost half your value.

Should we yank operator>>>?

No.

Reply via email to