You must log in or register to comment.
Couldn’t this be solved by having
push_back
being an inline function (or at least the check on capacity being inlined and the rest of the non-trivial part being in a sub non-inline function)?I don’t know about C++, but in Rust the push is inline, and still doesn’t always optimize checks away due to an annoying edge case: integer overflow. Reserving (old_len + new_len) could give you a smaller buffer than new_len. The optimizer sees it and is pedantic about it.