526
With great power...ignorance is bliss?
(lemmy.today)
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
There are many things in C++ that are “undefined behaviour”, UB (and several similar but technically different terms). These may or may not result in an error or warning at compile time. Worse, they usually lead to crashes or even seemingly random behaviour - even in code that is not directly tied to the UB.
The easiest example is memory management and pointers. You can create a new object and assign it to a variable. If you then delete the object, the variable could still point to the deleted object’s memory. And if you use that variable, that’s UB. It will likely crash, but probably not right away, which can be very hard to diagnose.
An interesting fact about UB is that optimisers may assume it does not exist. They can basically reason “well this code path would lead to UB, which can’t exist, so this code path can just be removed”. This could theoretically even affect code that runs before the UB.