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
This commit is contained in:
Gabor Greif 2009-02-27 12:02:19 +00:00
parent 3899e498df
commit 2946d1c928

View File

@ -886,22 +886,34 @@ not invalidate iterator or pointers to other elements in the list.</p>
intrusive, because it requires the element to store and provide access to the
prev/next pointers for the list.</p>
<p>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.
</p>
<p><tt>ilist</tt> has the same drawbacks as <tt>std::list</tt>, and additionally
requires an <tt>ilist_traits</tt> 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.</p>
<p>These properties are exactly what we want for things like Instructions and
basic blocks, which is why these are implemented with ilists.</p>
<p>These properties are exactly what we want for things like <tt>Instruction</tt>s
and basic blocks, which is why these are implemented with <tt>ilist</tt>s.</p>
Related classes of interest are explained in the following subsections:
<ul>
<li><a href="#dss_iplist">iplist</a></li>
<li><a href="#dss_ilist_node">llvm/ADT/ilist_node.h</a></li>
</ul>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection">
<a name="dss_iplist">iplist</a>
</div>
<div class="doc_text">
<p><tt>iplist&lt;T&gt;</tt> is <tt>ilist&lt;T&gt;</tt>'s base and as such
supports a slightly narrower interface. Notably, inserters from <tt>T&amp;</tt>
are absent.</p>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection">
<a name="dss_ilist_node">llvm/ADT/ilist_node.h</a>