In Swift (Apple’s C++ successor), the normal operators (`+`, `-`, `*`) trap on overflow for integer types. If you want twos complement wrapping, you can use `&+`, `&-`, and `&*`. Given that Apple has been making its own CPU cores for years now, I suspect overflowing checking on Apple CPUs is virtually free (aside from code size).
Zig also has a similar approach.
It is best to have ergonomic checked version of arithmetic functions and always use them when possible, and use the debug only checked versions on other places.
Performance of checked arithmetic will basically never matter around things like allocation in my experience