Boost logo

Boost :

Subject: Re: [boost] [container] moving a pre-built vector into a flat_set
From: Seth (bugs_at_[hidden])
Date: 2015-09-17 08:07:53


It strikes me that more containers could enjoy this mechanism.

Perhaps we need a concept for "MovableContiguousContainer" and
"MovableContiguousStorage". Perhaps with sub concepts for the aligned
versions too.

Because I can totally see `basic_string<T>::basic_string(vector<T>&&)`
and `std::vector<T>::vector(basic_string<T>&&)` being helpful just the
same.

So, if we think about this beyond the scope of flat_* then we might
actually create something that could be proposed for future c++.

Thinking of `flat_set<T>::flat_set(MovableContiguousStorage<T>&&)`¹

¹ (I don't know concepts syntax)

-- 
Seth
On Tue, Sep 15, 2015, at 11:03 PM, Sam Kellett wrote:
> a common problem i encounter is that i have two stage's w/r/t to a large
> collection of data: building and querying.
> 
> vector is obviously the king of building. flat_set is the king of
> querying.
> so what i often tend to do is build up a very large vector, sort it then
> create a flat_set using the flat_set(ordered_unique_t) constructor.
> 
> however this still copies the entire vector into the flat_set, right?
> 
> what i would like to be able to do is move the vector straight into the
> flat_set, something like:
> 
> std::vector<T> data;
> 
> flat_set data_set1(std::move(data)) // move vector in and sort it
> // or:
> std::sort(data.begin(), data.end()); // sort vector
> flat_set data_set2(ordered_unique_t, std::move(data)) // and move it in
> 
> is this doable (am i just being blind?) or is there plans/interest for
> this?
> 
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk