Boost logo

Boost :

Subject: [boost] embedded_vector (was: Re: [rfc] sized_array)
From: strasser_at_[hidden]
Date: 2010-02-09 05:09:31


Zitat von Tim Blechmann <tim_at_[hidden]>:

>>> [...] in contrary to std::vector, which is only required to
>>> support random-access iterators (which are implementation-defined), my
>>> class guaranties to allocate the data in one consecutive memory area. [...]
>>>
>>
>> As of C++03, std::vector is contiguous, so I'm not convinced by the
>> utility of this.
>
> interesting ... it seems, my assumption was based on c++98

I don't think that was changed from 98 to 03.
but your description reminded me of something I do think would be a
useful addition to Boost.Array.

a vector that resides on the stack as long as it fits in there(like a
boost::array) but still supports dynamic allocation in case the vector
size exceeds the reserved space.

my implementation of this:

template<class T,std::size_t EmbeddedSize,bool Expand=true>
class embedded_vector;

embedded_vector<T,Size,false> should be equivalent to
boost::array<T,Size>, but if Expand==true max_size() is unlimited,
with no allocation as long as size() <= EmbeddedSize


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