From 47c8a19cfded4e31d03cd758a8663389d837b8be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Mon, 6 Feb 2017 12:20:17 +0100 Subject: [PATCH] Documented null-forward iterators. --- doc/intrusive.qbk | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/intrusive.qbk b/doc/intrusive.qbk index 1556438..908ef93 100644 --- a/doc/intrusive.qbk +++ b/doc/intrusive.qbk @@ -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 l = { ... }; + auto ni = list::iterator(); + auto nd = list::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