NotPaidToPost
Joined 7 years ago
Joined 7 years ago
The important point is that this is a large increase when we already cannot manage now.
All forecasts predict another 60% (!!) increase in global population before it stabilises.
Forget about banning plastic straws or flying less (which are feel-good measures more than anything else) with such numbers... We need to take dramatic and effective steps.
There are 80 years left until the end of the century. This increase is far from being inevitable! But, again, we prefer to ignore these key issues and focus on marginal, feel-good measures instead.
Err... Tsai is not in the 'nationalist' camp (KMT), she is from the DPP (Pan-Green coalition).
The rest of the article on Taiwan history is equally poor and confusing.
It's been hugely magnified the media, but it is no more than a government bringing a bill forward and people demonstrating against it.
This often happens in most Western countries and no-one asks the UN what they think about it.
Perhaps time to put things into perspective.
― Confucius
You're suggesting that using the C language as specified and intended should produce a warning... That makes no sense.
Stating that 32^2 should not trigger a warning while 2^32 should shows that this proposal has not been thought through.
It's not desirable or sensible to raise a warning on the premise that the expression might mean something else in another language, which is what this would do.
I remember a few years back China Daily (or was it the People's Daily) quoted The Onion because the 'journalist' hadn't realised it was a satirical website...
Edit:
Here it is. It was the People's Daily: https://www.cnn.com/2012/11/27/world/asia/north-korea-china-...
The preprocessor does macro expansion, the compiler compiles the result.
The compiler does not see FLAG_BIT1 ^ FLAG_BIT3, it only sees the result, e.g. 2^32.
Therefore to catch only explicit 2^32 the warning should come from the preprocessor... Nice mess created right there.
On the other hand ^ expects integers so 2^32 is exactly what is expected.
Most the replies I saw here try to second-guess or claim that ^ should be used in a specific way. Not so, ^ is just doing XOR of two integers.
Apparently, I am having an incorrect opinion, though, so I will self-censor and remain silent.
Many build environments are set to treat all warnings as errors.
The point is that 2^32 is a perfectly compliant C expression that is neither misleading nor ambiguous, and that also won't create any variable overflow. It uses ^ exactly as intended. Why should the compiler complain? Why should I get a warning/error when following the spec to the letter?
Better to leave this to code analysis tools.
Edit:
2^32 uses the ^ operator exactly as intended, and has perfectly legitimate uses, especially when dealing with registers of HW peripherals.
It's not the same as warning on "if (a=b)" as someone replied.
From a language perspective, 2^32 is exactly the same as 2+32.