Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

4
  • You are conflating two fundamentally different things here – array overflow check, which is rarely useful except for debugging, and arithmetic overflow checks, which are often useful. Commented Jul 28, 2011 at 8:49
  • 5
    "I refuse to believe" - that's your call, but if you refuse to believe true things then you're going to have difficulty. Signed integer types are no use in C or C++ for calculations that might overflow. That's a consequence of the standard being designed to avoid imposing overhead on machine architectures whose "natural" behavior is different from whatever you or I think the behavior should be. That consequence was considered worth paying to avoid the implementation burden. Commented Jul 28, 2011 at 8:55
  • Calculations with arry bounds are especially suitable for unsigned arithmetic, as you know a priori that you should never get a negative end result anyway. Commented Jul 28, 2011 at 9:12
  • "If there is no useful and reliable way of checking for overflow then the language itself is dubious" - then the language is dubious by your definition. If you don't find the language useful, don't use it (or only use implementations and command-line options which provide additional guarantees about overflow). Probably where you part company with the C standard committee is that you think checking for overflow before the operation is useless, and they think it isn't. Possibly you also think unsigned types are useless, and they don't. Commented Jul 28, 2011 at 15:37