
Pavel Vozenilek wrote:
Discovered problems in code or in documentation, missing features, portability issues and finally opinion whether the library belongs to Boost is welcomed.
I'm trying to compile the library with GCC 3.4. I get the following errors: ../../../boost/circular_buffer/debug.hpp: In member function `void boost::cb_details::cb_iterator_registry::invalidate_iterators(const Condition&)': ../../../boost/circular_buffer/debug.hpp:60: error: invalid use of undefined type `const struct boost::cb_details::cb_iterator_base' ../../../boost/circular_buffer/debug.hpp:22: error: forward declaration of `const struct boost::cb_details::cb_iterator_base' The type appears to be undefined at the point of use. I know this is within a template function, but the type is non-dependent, so it must be defined before its use. An out-of-class definition at the end of the file seems to suffice. ../../../boost/circular_buffer/base.hpp:139: error: using typedef-name `boost::circular_buffer<T, Alloc>::iterator' after `struct' ../../../boost/circular_buffer/base.hpp:140: error: using typedef-name `boost::circular_buffer<T, Alloc>::const_iterator' after `struct' Verified, and the code really does try to use a typedef-name while declaring friendship, which is invalid. ../../../boost/circular_buffer/adaptor.hpp:369: error: dependent-name `boost::cb_details::cb_iterator_category_traits<InputIterator>::tag' is parsed as a non-type, but instantiation yields a type ../../../boost/circular_buffer/adaptor.hpp:369: note: say `typename boost::cb_details::cb_iterator_category_traits<InputIterator>::tag' if a type is meant Just as it says. The same happens at line 412. Then in base.hpp, lines 570, 827, 953, 1105. After fixing the above, I was able to compile & run adaptor_test and base_test with no errors detected. -- Giovanni Bajo