top | item 47193440

(no title)

dminik | 1 day ago

Yes there is. RAII is not a full replacement for GC and you will shoot yourself in the foot if you treat it as such. The design of C++ also includes many unpatchable holes in the standard library which WILL cause errors and UB.

discuss

order

Moldoteck|1 day ago

So how exactly would this shooting in the foot look like compared to say java

dminik|1 day ago

Too many to list, but for some examples:

You take a reference to a vector element, which you later accidentally invalidate by pushing to the same vector.

You move out of a unique_ptr, but then you accidentally use it again.

You create a cycle with shared_ptr causing a memory leak.

If you std::sort a list of floats with NaNs (among other things) you can stomp over memory. The sort function requires some very specific ordering otherwise you get UB.