Is there any interest in a vector like container which is designed to make working with raw memory easy. It is different from a vector<char> (with the additional assumption that the objects are stored in memory sequentially) is the following ways:
The integrator is defined to be a pointer to make working with functions that use raw memory easy. It can use a specific range of user supplied memory for its storage. When using user memory it will never attempt to allocate more memory. capacity() == max_size(). Any function which takes a range: (const_iterator start, const_iterator stop) can also take a void pointer and a size ie: (const void * data, size_type size) Any function which takes an iterator to represent a position within the exiting object can also take an offset. If two iterators are used to represent a range than an offset and a size can also be used. Like vector, push_back(), and pop_back() or constant time operations if storage is available. However, unlike vector, pop_front() is a constant time operation and push_front() can be made to be constant time operations. support for replacing one range with another while moving the minimal amount of memory possible: replace(iterator start, iterator_stop, const_iterator rstart, const_iterator rstop) A special member function template <typename U> U * datap(size_type pos = 0) which allows treating the memory as another type without an ugly reinterpret_cast. This statement is equivalent to reinterpret_cast<U *>(...) + pos My implementation is not a template. It uses new[] and delete[] for memory allocation and the data type is "unsigned char". Since the main goal for this class was working with raw memory and not an array of objects I decided not to make it a template. Some of the features of Buffer might be useful for a more general purpose vector, such as the replace method and the ability to use user memory. If people are really interested I will post my code. I wrote it to make working with Berkeley database and sending network messages as painless as possible. Let me know. --- http://kevin.atkinson.dhs.org _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost