Hi all! Another beast was born. You can find it at http://groups.yahoo.com/group/boost/files/circular_buffer.zip
New features: - Added circular_buffer_space_optimized adaptor + documentation. - Introduced circular_buffer<T>::data() method. - Updated documentation (including source code documentation). - Bug fixes. Some comments: > 1. IMO the macro based exception handling isn't needed, it is better > to use RAII, like: > ... > > can be replaced by: > > void set_capacity(size_type new_capacity) { > if (new_capacity == capacity()) return; > pointer buff = allocate(new_capacity); > > struct deleter_t { > pointer data; > size_type capacity; > deleter_t(pointer p, size_type s) : data(p), capacity(s) {} > ~deleter_t() { deallocate(data, capacity); } > }; > deleter_t guard(buff, new_capacity); > > size_type new_size = new_capacity < size() ? new_capacity : size(); > std::uninitialized_copy(end() - new_size, end(), buff); > destroy(); > m_size = new_size; > m_buff = m_first = buff; > m_end = m_buff + new_capacity; > m_last = full() ? m_buff : m_buff + size(); > guard.data = 0; > } > I think this is not a good idea because - it won't work - the ~deleter_t() destructor does not have access to the deallocate() method - the original macros are more explanatory (it is easier to understand) - every STL implementation is using such macros > --------------------------------------------- > I tried (Intel 7): > circular_buffer aa(10); > aa.assign(3, 1.0); > > and got error: > I think it should already compile for both Intel and Borland. > Internal checks: maybe something like this can be used: > Done. > Small note: the source code contains some tabs. Boost requirement is to use > spaces only. > I forgot. Now should be everything OK. S pozdravom, Jano P.S. I will be on holiday next week. -- Jan Gaspar | [EMAIL PROTECTED] Whitestein Technologies | www.whitestein.com Panenska 28 | SK-81103 Bratislava | Slovak Republic Tel +421(2)5930-0735 | Fax +421(2)5443-5512 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost