struct bidirectional_iterator_tag {}| property | valid expressions |
|---|---|
| Isdefault-constructible,copy-constructible,copy-assignable anddestructible | X a; |
| Can be compared for equivalence using the equality/inequality operators (meaningful when both iterator values iterate over the same underlying sequence). | a == b |
| Can be dereferenced as anrvalue (if in adereferenceable state). | *a |
| Formutable iterators (non-constant iterators): Can be dereferenced as anlvalue (if in adereferenceable state). | *a = t |
| Can be incremented (if in adereferenceable state). The result is either alsodereferenceable or apast-the-end iterator. Two iterators that compare equal, keep comparing equal after being both increased. | ++a |
| Can be decremented (if adereferenceable iterator value precedes it). | --a a-- *a-- |
| property | valid expressions |
|---|---|
| Isdefault-constructible,copy-constructible,copy-assignable anddestructible | X a; |
| Can be compared for equivalence using the equality/inequality operators (meaningful when both iterator values iterate over the same underlying sequence). | a == b |
| Can be dereferenced as anrvalue (if in adereferenceable state). | *a |
| Formutable iterators (non-constant iterators): Can be dereferenced as anlvalue (if in adereferenceable state). | *a = t |
| Can be incremented (if in adereferenceable state). The result is either alsodereferenceable or apast-the-end iterator. Two iterators that compare equal, keep comparing equal after being both increased. | ++a |
| Can be decremented (if adereferenceable iterator value precedes it). | --a a-- *a-- |
| Lvalues areswappable. | swap(a,b) |
const T&).