Documented null-forward iterators.

This commit is contained in:
Ion Gaztañaga
2017-02-06 12:20:17 +01:00
parent 286f597606
commit 47c8a19cfd

View File

@@ -3316,6 +3316,28 @@ To analyze the thread safety, consider the following points:
[endsect]
[section:boost_intrusive_iterators Boost.Intrusive Iterator features]
[section:null_forward_iterators Null forward iterators]
[*Boost.Intrusive] implements
[@http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3644.pdf C++14 Null Forward Iterators],
a feature that was introduced with C++14. This means that equality and inequality comparison are defined
over all iterators for the same underlying sequence and the value initialized-iterators.
Value initialized iterators behave as if they refer past the end of the same empty sequence:
[c++]
list<MyType> l = { ... };
auto ni = list<MyType>::iterator();
auto nd = list<MyType2>::iterator();
ni == ni; // True.
nd != nd; // False.
ni == nd; // Won't compile.
[endsect]
[section:scary_iterators Scary Iterators]
The paper N2913, titled [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2913.pdf,
@@ -3346,6 +3368,8 @@ More concretely, the following options and conditions guarantee that iterator ty
[endsect]
[endsect]
[section:equal_range_stability Stability and insertion with hint in ordered associative containers with equivalent keys]
[*Boost.Intrusive] ordered associative containers with equivalent keys offer stability guarantees, following