buffer::list::iterator_impl<is_const>::iterator_impl(const buffer::list::iterator& i)
: iterator_impl<is_const>(i.bl, i.off, i.p, i.p_off) {}
-#ifdef BL_BACKWARD_COMPAT
- /// The backward iteration over is bufferlist is DEPRECATED!
- /// The old int-taking variant of advance() is solely for compatibility.
- template<bool is_const>
- void buffer::list::iterator_impl<is_const>::advance(int o)
- {
- seek(off + o);
- }
-#endif // BL_BACKWARD_COMPAT
-
template<bool is_const>
void buffer::list::iterator_impl<is_const>::advance(unsigned o)
{
: iterator_impl(l, o, ip, po)
{}
-#ifdef BL_BACKWARD_COMPAT
- /// The backward iteration over is bufferlist is DEPRECATED!
- /// The old int-taking variant of advance() is solely for compatibility.
- void buffer::list::iterator::advance(int o)
- {
- seek(off + o);
- }
-#endif // BL_BACKWARD_COMPAT
-
void buffer::list::iterator::advance(unsigned o)
{
buffer::list::iterator_impl<false>::advance(o);
//return off == bl->length();
}
-#ifdef BL_BACKWARD_COMPAT
- void advance(int o);
-#else
void advance(int o) = delete;
-#endif // BL_BACKWARD_COMPAT
-
void advance(unsigned o);
void advance(size_t o) { advance(static_cast<unsigned>(o)); }
void seek(unsigned o);
iterator(bl_t *l, unsigned o=0);
iterator(bl_t *l, unsigned o, list_iter_t ip, unsigned po);
-#ifdef BL_BACKWARD_COMPAT
- void advance(int o);
-#else
void advance(int o) = delete;
-#endif // BL_BACKWARD_COMPAT
-
void advance(unsigned o);
void advance(size_t o) { advance(static_cast<unsigned>(o)); }
EXPECT_EQ('B', *i);
EXPECT_EQ('C', *j);
bl.c_str()[1] = 'X';
-#ifdef BL_BACKWARD_COMPAT
- j.advance(-1);
- EXPECT_EQ('X', *j);
-#endif // BL_BACKWARD_COMPAT
}
//
bufferlist::iterator i(&bl);
EXPECT_THROW(i.advance(200u), buffer::end_of_buffer);
}
-#ifdef BL_BACKWARD_COMPAT
- {
- bufferlist::iterator i(&bl);
- EXPECT_THROW(i.advance(-1), buffer::end_of_buffer);
- }
-#endif // BL_BACKWARD_COMPAT
{
bufferlist::iterator i(&bl);
EXPECT_EQ('A', *i);
EXPECT_EQ('B', *i);
i.advance(3u);
EXPECT_EQ('E', *i);
-#ifdef BL_BACKWARD_COMPAT
- i.advance(-3);
- EXPECT_EQ('B', *i);
- i.advance(-1);
- EXPECT_EQ('A', *i);
-#endif // BL_BACKWARD_COMPAT
}
}