For all data types, it's parsed as x-- - y. If it's some class object then you have to define post decrement operator and minus operator, it will give compiler error if you just define pre decrement operator. That means, x-- - y is forced in any case.