3 ms·
No. It can help because the result of the expression would have a different type, one that "if" does not accept. If a and b are integers, then the expression "a
by anyfoo 5y ago
No. It can help because the result of the expression would have a different type, one that "if" does not accept. If a and b are integers, then the expression "a = b" is an integer too, but "a == b" is a boolean. In a strongly typed language, you can assume that "if" only accepts booleans.
- tialaramex 5y agoYeah. The direction of modern languages has been away from features like this which are "clever" but don't express anything you couldn't have said by another means - and yet allow programmers to accidentally write something nobody would ever want. Assignment shouldn't have a return type. Compound assignment operators? Likewise. You never need this return value, and sometimes you may use it by mistake. So, abolish it. In C++ not only do operators that shouldn't have a return value have one anyway, the type of that value might be anything. You can even overload both ++ operators to return different unrelated types so that mytype aThing { blah }; auto a = aThing++; // returns a String "Fuck tha police" auto b = ++aThing; // returns a double, 8.63 The Jeff Goldblum GIF is often the appropriate reaction to C++ features: "Your scientists were so preoccupied with whether or not they could, that they didn't stop to think if they should"