On Sat, 8 Apr 2017, Ion GaztaƱaga via Boost wrote:
On 29/03/2017 4:13, Chris Glover via Boost wrote:
We can have different "adopt" variants depending on the guarantees the user provides, just like we have different "insert" versions (ordered_unique_t, etc.). The "safe" one can assume passed vector is unordered and just sorts and calls unique if needed. Other variants might just skip sorting if the user requires so.
Sure.
Committed to develop new experimental functions:
class flat_map/set { sequence_type extract_sequence(); void adopt_sequence(sequence_type &&seq); void adopt_sequence(ordered_unique_range_t, sequence_type &&seq); };
class flat_multimap/multiset { sequence_type extract_sequence(); void adopt_sequence(sequence_type &&seq); void adopt_sequence(ordered_range_t, sequence_type &&seq); };
Let's see if they are useful. Any feedback welcome.
That seems more complicated than simply giving (in-place) access to the internal sequence_type. You already had to document the invariants for adopt_sequence(ordered_unique_range_t,*) and more or less promised that extract_sequence takes constant time, so the abstraction doesn't buy you much. -- Marc Glisse