From 2946d1c928a6933c9f9b0544b58af61cdab36822 Mon Sep 17 00:00:00 2001 From: Gabor Greif Date: Fri, 27 Feb 2009 12:02:19 +0000 Subject: [PATCH] Expand a bit on iplist. If you are more expert on this class, please review! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65630 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ProgrammersManual.html | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index e2918c0438f..5068d011087 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -886,22 +886,34 @@ not invalidate iterator or pointers to other elements in the list.

intrusive, because it requires the element to store and provide access to the prev/next pointers for the list.

-

ilist has the same drawbacks as std::list, and additionally requires an -ilist_traits implementation for the element type, but it provides some novel -characteristics. In particular, it can efficiently store polymorphic objects, -the traits class is informed when an element is inserted or removed from the -list, and ilists are guaranteed to support a constant-time splice operation. -

+

ilist has the same drawbacks as std::list, and additionally +requires an ilist_traits implementation for the element type, but it +provides some novel characteristics. In particular, it can efficiently store +polymorphic objects, the traits class is informed when an element is inserted or +removed from the list, and ilists are guaranteed to support a constant-time splice +operation.

-

These properties are exactly what we want for things like Instructions and -basic blocks, which is why these are implemented with ilists.

+

These properties are exactly what we want for things like Instructions +and basic blocks, which is why these are implemented with ilists.

Related classes of interest are explained in the following subsections: + +
+ iplist +
+ +
+

iplist<T> is ilist<T>'s base and as such +supports a slightly narrower interface. Notably, inserters from T& +are absent.

+
+
llvm/ADT/ilist_node.h