• kornel@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago

    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.