
Zitat von Tim Blechmann <tim@klingt.org>:
[...] 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