boostorg / container

STL-like containers from Boost
http://www.boost.org/libs/container/
Boost Software License 1.0
100 stars 116 forks source link

Non-unique inplace_set_difference used in in flat_tree_merge_unique and iterator invalidation in insert_unique #118

Closed igaztanaga closed 5 years ago

igaztanaga commented 5 years ago

1) In "flat_tree_merge_unique" inplace_set_difference is used insted of inplace_set_unique_difference

2) Im "insert_unique", the operation "seq.erase(e, seq.cend());" can invalidate the iterator "it" in the corner case if "it == e", so "it" should not be used in "flat_tree_container_inplace_merge". This invalidation does not show in contiguous memory sequence containers like vector, but it is triggered when using stable_vector and other non-contiguous sequences.