id summary reporter owner description type status milestone component version severity resolution keywords cc 10543 circular_buffer::rotate() incorrectly assumes that circular_buffer::pointer is a simple pointer type Matteo Settenvini Jan Gaspar "Dear maintainer, I am trying to use a boost::circular_buffer inside a shared memory segment, along with Boost.Interprocess. This implies that the type of the stored pointer is an offset_ptr, and not just a T *. In circular_buffer/base.hpp, the rotate method uses a const_cast from the member of a const iterator, assuming that ""pointer"" is indeed a simple pointer type. This however fails when it is instead a structure, such as boost::interprocess::offset_ptr. The patch I am attaching below solves the issue for me, by allowing the right template specialization to kick in. I did not test it with different pointer types as I am a bit short on time, but by reading the code alone, it should work also with plain pointers." Bugs new To Be Determined circular_buffer Boost 1.56.0 Problem