
I am trying do use a circular_buffer iterator and run into problems when I try to write a copy constructor for my class. g++ (GCC) 4.5.3 generates following error: Test.cpp: In copy constructor ‘Test::Test(const Test&)’: Test.cpp:23:18: error: no match for ‘operator=’ in ‘it2 = boost::circular_buffer<T, Alloc>::begin() const [with T = int, Alloc = std::allocator<int>, boost::circular_buffer<T, Alloc>::const_iterator = boost::cb_details::iterator<boost::circular_buffer<int>, boost::cb_details::const_traits<std::allocator<int> > >]()’ /usr/local/include/boost/circular_buffer/details.hpp:253:15: note: candidate is: boost::cb_details::iterator<Buff, Traits>& boost::cb_details::iterator<Buff, Traits>::operator=(const boost::cb_details::iterator<Buff, Traits>&) [with Buff = boost::circular_buffer<int>, Traits = boost::cb_details::nonconst_traits<std::allocator<int> >, boost::cb_details::iterator<Buff, Traits> = boost::cb_details::iterator<boost::circular_buffer<int>, boost::cb_details::nonconst_traits<std::allocator<int> > >] What do I miss. Can anybody help? Thank you, -- Bernd #include <boost/circular_buffer.hpp> class Test { public: Test(); Test(const Test&); private: boost::circular_buffer<int> b; }; Test::Test() { b.resize(10); } Test::Test(const Test &t) { b.resize(10); size_t s1 = b.size(); size_t s2 = t.b.size(); boost::circular_buffer<int>::iterator it1 = b.begin(); boost::circular_buffer<int>::iterator it2 = t.b.begin(); } int main() { Test *t = new Test(); return 0; }