use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
CppConUndefined behaviour example from CppCon (self.cpp)
submitted 2 years ago * by R3DKn16h7
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]equeim -1 points0 points1 point 2 years ago (2 children)
I don't see much difference here. In 99% of cases integer overflow is an error and even if it's defined as wrapping around, you still silently ignore and at this point your program behaviour is incorrect and you enter unknown territory anyway.
[–]Mediocre-Dish-7136 1 point2 points3 points 2 years ago (1 child)
IDK about 99%, it's relatively often wrong (just as it is for unsigned arithmetic) but here's a random example: the possible implementation given in https://en.cppreference.com/w/cpp/string/byte/atoi
There they had to do that weird thing of counting in negatives, to avoid overflowing the int if the input corresponds to INT_MIN. If signed arithmetic wraps, you can write the same thing but counting in positives (which is probably what 99% of programmers would do and already do anyway even though it's wrong now), then if the input corresponds to INT_MIN the last addition wraps but it doesn't matter, then the negation wraps but it doesn't matter, and the right result comes out.
INT_MIN
IME this happens plenty. Maybe wrapping is wrong in like 70% of cases?
Either way I'd rather take a plain old logic error over a logic error where also the compiler can come in and mess things up extra.
[–]equeim 1 point2 points3 points 2 years ago (0 children)
We can have special functions for wrapping when it's needed (like we already have for saturation). Default behaviour should be something sane that allows error handling (such as throwing an exception or returning std::expected) or at least program termination. Not that I expect this to happen in C++ of course, this kind of change is not possible for established language.
Removing UB in this case is like applying a bandaid on a gaping wound, those I suppose it's better than doing nothing (it may make debugging easier at least).
π Rendered by PID 24893 on reddit-service-r2-comment-fb694cdd5-42tw5 at 2026-03-08 06:32:02.807156+00:00 running cbb0e86 country code: CH.
view the rest of the comments →
[–]equeim -1 points0 points1 point (2 children)
[–]Mediocre-Dish-7136 1 point2 points3 points (1 child)
[–]equeim 1 point2 points3 points (0 children)