Sophie

Sophie

distrib > Arklinux > devel > i586 > media > main > by-pkgid > 55a0eeb6652adcfc2fb1b1094c78b066 > files > 204

libqtpod-devel-0.4.2-1ark.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libqtpod: itunesdb::utils::SortablePtrVector&lt; ElemType &gt;::ContainerVersionAwareIterator&lt; Container_T, Iter_T, TUnaryPredicate &gt; Class Template Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.0 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<div class="nav">
<b>itunesdb</b>::<b>utils</b>::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">SortablePtrVector</a>::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a></div>
<h1>itunesdb::utils::SortablePtrVector&lt; ElemType &gt;::ContainerVersionAwareIterator&lt; Container_T, Iter_T, TUnaryPredicate &gt; Class Template Reference</h1><!-- doxytag: class="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator" --><!-- doxytag: inherits="itunesdb::utils::RangeIterator&lt; ElemType *, Iter_T, TUnaryPredicate &gt;" --><code>#include &lt;<a class="el" href="utils_8h-source.html">utils.h</a>&gt;</code>
<p>
<p>Inheritance diagram for itunesdb::utils::SortablePtrVector&lt; ElemType &gt;::ContainerVersionAwareIterator&lt; Container_T, Iter_T, TUnaryPredicate &gt;:
<p><center><img src="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.png" usemap="#itunesdb::utils::SortablePtrVector< ElemType >::ContainerVersionAwareIterator< Container_T, Iter_T, TUnaryPredicate >_map" border="0" alt=""></center>
<map name="itunesdb::utils::SortablePtrVector< ElemType >::ContainerVersionAwareIterator< Container_T, Iter_T, TUnaryPredicate >_map">
<area href="classitunesdb_1_1utils_1_1RangeIterator.html" alt="itunesdb::utils::RangeIterator< ElemType *, Iter_T, TUnaryPredicate >" shape="rect" coords="703,0,1396,24">
<area href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html" alt="itunesdb::utils::SortablePtrVector< ElemType >::FilteredConstIterator< TUnaryPredicate >" shape="rect" coords="0,112,693,136">
<area href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html" alt="itunesdb::utils::SortablePtrVector< ElemType >::FilteredConstIterator< TrackPredicate_T >" shape="rect" coords="703,112,1396,136">
<area href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredIterator.html" alt="itunesdb::utils::SortablePtrVector< ElemType >::FilteredIterator< TUnaryPredicate >" shape="rect" coords="1406,112,2099,136">
<area href="structITunesDB_1_1FilteredTrackConstIterator.html" alt="ITunesDB::FilteredTrackConstIterator< TrackPredicate_T >" shape="rect" coords="703,168,1396,192">
</map>
<a href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#4e33d47b5ac8ae0a7e2169a05709b39c">isValid</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns false if the underlying container got changed outside the control of this iterator, true otherwise.  <a href="#4e33d47b5ac8ae0a7e2169a05709b39c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#aa284de7fc6f564e65c8e7ed5a0fd16e">hasNext</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if there are elements left so calling <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> would return the next element rather than causing a segfault.  <a href="#aa284de7fc6f564e65c8e7ed5a0fd16e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">ElemType *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the next element of the range of elements we iterate over.  <a href="#4ec45e4263c7e0a476d89f5ee19f3f2b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">ElemType *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3e7686b7d6777ad9b03e76f4003a3ff0">current</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the element returned by the last <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> call.  <a href="#3e7686b7d6777ad9b03e76f4003a3ff0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#068841797df48ae34dc6b4d07dfd2f8d">remaining</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of elements remaining in this iterator.  <a href="#068841797df48ae34dc6b4d07dfd2f8d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">ElemType *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#b0049fef206c47265d2c7afc6c5e53c8">last</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the last element this iterator would return.  <a href="#b0049fef206c47265d2c7afc6c5e53c8"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">RangeIterator</a>&lt; ElemType *,<br>
 Iter_T, TUnaryPredicate &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#100d6ac294356919fa6a55004726553c">BaseRangeIterator</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base type of this iterator.  <a href="#100d6ac294356919fa6a55004726553c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#fa171899a533b758a72c1eecbb3ae87b">ContainerVersionAwareIterator</a> (Container_T &amp;container, const TUnaryPredicate &amp;pred=TUnaryPredicate())</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>.  <a href="#fa171899a533b758a72c1eecbb3ae87b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#e21faebdbdd99993ab1e819672b87f4b">setRange</a> (Iter_Tpos, Iter_Tend)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the range to the given iterators.  <a href="#e21faebdbdd99993ab1e819672b87f4b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Iter_T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4bee97e88324551a9f35abdcb403756c">currentPos</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the iterator pointing to the element returned by the last <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> call.  <a href="#4bee97e88324551a9f35abdcb403756c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#921cb0ed265daa324f3fd9701233d948">empty</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if there are no elements left to be iterated over.  <a href="#921cb0ed265daa324f3fd9701233d948"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Container_T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#4595082755ee5c4aea721cdeb22ca60e">m_container</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The container we iterate over.  <a href="#4595082755ee5c4aea721cdeb22ca60e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#7e8a500fe412e48401abc88e5b9a1c99">m_containerversion</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The version of the container we iterate over.  <a href="#7e8a500fe412e48401abc88e5b9a1c99"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType *,<br>
 Iter_T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#7ae231f1092fd7b3bdd60735c0e4a253">m_dereferenceFun</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">RangeIteratorFunctions&lt; ElemType *,<br>
 Iter_T, TUnaryPredicate,<br>
 <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType *,<br>
 Iter_T &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#348eb41984e68a15806aadecf1374b10">m_helper</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class ElemType&gt;<br>
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt;<br>
 class itunesdb::utils::SortablePtrVector&lt; ElemType &gt;::ContainerVersionAwareIterator&lt; Container_T, Iter_T, TUnaryPredicate &gt;</h3>

An Iterator over all elements of this container being aware of changes to the container. The Iterator gets invalid if the container got changed outside the control of this iterator. 
<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="100d6ac294356919fa6a55004726553c"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::BaseRangeIterator" ref="100d6ac294356919fa6a55004726553c" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">RangeIterator</a>&lt; ElemType*, Iter_T, TUnaryPredicate &gt; <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">itunesdb::utils::SortablePtrVector</a>&lt; ElemType &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>&lt; Container_T, Iter_T, TUnaryPredicate &gt;::<a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">BaseRangeIterator</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The base type of this iterator. 
<p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="fa171899a533b758a72c1eecbb3ae87b"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::ContainerVersionAwareIterator" ref="fa171899a533b758a72c1eecbb3ae87b" args="(Container_T &amp;container, const TUnaryPredicate &amp;pred=TUnaryPredicate())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">itunesdb::utils::SortablePtrVector</a>&lt; ElemType &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>&lt; Container_T, Iter_T, TUnaryPredicate &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>           </td>
          <td>(</td>
          <td class="paramtype">Container_T &amp;&nbsp;</td>
          <td class="paramname"> <em>container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TUnaryPredicate &amp;&nbsp;</td>
          <td class="paramname"> <em>pred</em> = <code>TUnaryPredicate()</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>. 
<p>
The Iterator iterates over all elements in container matching the given predicate. The version of the iterator will be checked against the version of the given container to check the validity of this Iterator instance. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>container</em>&nbsp;</td><td>the container to iterate over and to check the version against </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pred</em>&nbsp;</td><td>the predicate to match the elements against </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="4e33d47b5ac8ae0a7e2169a05709b39c"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::isValid" ref="4e33d47b5ac8ae0a7e2169a05709b39c" args="() const" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">itunesdb::utils::SortablePtrVector</a>&lt; ElemType &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>&lt; Container_T, Iter_T, TUnaryPredicate &gt;::isValid           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns false if the underlying container got changed outside the control of this iterator, true otherwise. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>false if the underlying container got changed outside the control of this iterator. </dd></dl>

</div>
</div><p>
<a class="anchor" name="aa284de7fc6f564e65c8e7ed5a0fd16e"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::hasNext" ref="aa284de7fc6f564e65c8e7ed5a0fd16e" args="() const" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">itunesdb::utils::SortablePtrVector</a>&lt; ElemType &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>&lt; Container_T, Iter_T, TUnaryPredicate &gt;::hasNext           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if there are elements left so calling <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> would return the next element rather than causing a segfault. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if there are elements left </dd></dl>

<p>
Reimplemented from <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3df43aec558b0db5c67388d8022228fd">itunesdb::utils::RangeIterator&lt; ElemType *, Iter_T, TUnaryPredicate &gt;</a>.<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="listtests_8cpp-example.html#a13">listtests.cpp</a>.</dl>
</div>
</div><p>
<a class="anchor" name="e21faebdbdd99993ab1e819672b87f4b"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::setRange" ref="e21faebdbdd99993ab1e819672b87f4b" args="(Iter_Tpos, Iter_Tend)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::setRange           </td>
          <td>(</td>
          <td class="paramtype">Iter_T &nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Iter_T &nbsp;</td>
          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the range to the given iterators. 
<p>

</div>
</div><p>
<a class="anchor" name="4bee97e88324551a9f35abdcb403756c"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::currentPos" ref="4bee97e88324551a9f35abdcb403756c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Iter_T  <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::currentPos           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the iterator pointing to the element returned by the last <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> call. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the iterator pointing to the element returned by the last <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> call </dd></dl>

</div>
</div><p>
<a class="anchor" name="921cb0ed265daa324f3fd9701233d948"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::empty" ref="921cb0ed265daa324f3fd9701233d948" args="() const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::empty           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if there are no elements left to be iterated over. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if there are no elements left to be iterated over </dd></dl>

</div>
</div><p>
<a class="anchor" name="4ec45e4263c7e0a476d89f5ee19f3f2b"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::next" ref="4ec45e4263c7e0a476d89f5ee19f3f2b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ElemType *  <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::next           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the next element of the range of elements we iterate over. 
<p>
This method positions the Iterator at the next element and returns it. The first call to this method will return the first element of the range. <br>
 If the iterator is filtered only those elements where the given predicate returned true are returned. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>Always check if <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3df43aec558b0db5c67388d8022228fd">hasNext()</a> returns true before calling next. Calling <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> on an iterator already at the end of the range will cause a segfault. </dd></dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3df43aec558b0db5c67388d8022228fd">hasNext()</a> returns true </dd></dl>
<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>a successive call to <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3e7686b7d6777ad9b03e76f4003a3ff0">current()</a> returns the element returned by this method </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="listtests_8cpp-example.html#a15">listtests.cpp</a>.</dl>
</div>
</div><p>
<a class="anchor" name="3e7686b7d6777ad9b03e76f4003a3ff0"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::current" ref="3e7686b7d6777ad9b03e76f4003a3ff0" args="() const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ElemType *  <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::current           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the element returned by the last <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> call. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the element returned by the last <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> call </dd></dl>

</div>
</div><p>
<a class="anchor" name="068841797df48ae34dc6b4d07dfd2f8d"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::remaining" ref="068841797df48ae34dc6b4d07dfd2f8d" args="() const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::remaining           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of elements remaining in this iterator. 
<p>
... meaning the number of times the <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#4ec45e4263c7e0a476d89f5ee19f3f2b">next()</a> method can be called before the <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3df43aec558b0db5c67388d8022228fd">hasNext()</a> method willreturn false. For filtered iterators this may be a lengthy operation since the iterator needs to apply its filter over all elements to determine how many elements are left. <dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of elements left </dd></dl>

</div>
</div><p>
<a class="anchor" name="b0049fef206c47265d2c7afc6c5e53c8"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::last" ref="b0049fef206c47265d2c7afc6c5e53c8" args="() const" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ElemType *  <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::last           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the last element this iterator would return. 
<p>
This method is dangerous and makes no sense. Do not call this for empty iterators so at least check with <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#3df43aec558b0db5c67388d8022228fd">hasNext()</a> before. <dl class="return" compact><dt><b>Returns:</b></dt><dd>the last element this iterator would return </dd></dl>
<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>it must have been ensured that the iterator is nonempty </dd></dl>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="4595082755ee5c4aea721cdeb22ca60e"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::m_container" ref="4595082755ee5c4aea721cdeb22ca60e" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Container_T&amp; <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">itunesdb::utils::SortablePtrVector</a>&lt; ElemType &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>&lt; Container_T, Iter_T, TUnaryPredicate &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#4595082755ee5c4aea721cdeb22ca60e">m_container</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The container we iterate over. 
<p>
We need this to check our version and validity against 
</div>
</div><p>
<a class="anchor" name="7e8a500fe412e48401abc88e5b9a1c99"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::m_containerversion" ref="7e8a500fe412e48401abc88e5b9a1c99" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;typename Container_T, typename Iter_T, typename TUnaryPredicate = TRUEPredicate&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">unsigned long <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">itunesdb::utils::SortablePtrVector</a>&lt; ElemType &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html">ContainerVersionAwareIterator</a>&lt; Container_T, Iter_T, TUnaryPredicate &gt;::<a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html#7e8a500fe412e48401abc88e5b9a1c99">m_containerversion</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The version of the container we iterate over. 
<p>
If this differs from m_container.m_version the iterator gets invalid. 
</div>
</div><p>
<a class="anchor" name="7ae231f1092fd7b3bdd60735c0e4a253"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::m_dereferenceFun" ref="7ae231f1092fd7b3bdd60735c0e4a253" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::<a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#7ae231f1092fd7b3bdd60735c0e4a253">m_dereferenceFun</a><code> [protected, inherited]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dereferencer to dereference an iterator to IterType 
</div>
</div><p>
<a class="anchor" name="348eb41984e68a15806aadecf1374b10"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator::m_helper" ref="348eb41984e68a15806aadecf1374b10" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RangeIteratorFunctions&lt;ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt; &gt; <a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">itunesdb::utils::RangeIterator</a>&lt; ElemType * , Iter_T , TUnaryPredicate , <a class="el" href="structitunesdb_1_1utils_1_1DefaultDeref.html">DefaultDeref</a>&lt; ElemType * , Iter_T  &gt;  &gt;::<a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html#348eb41984e68a15806aadecf1374b10">m_helper</a><code> [protected, inherited]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Internal implementors of the underlying functions 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>libqtpod/src/<a class="el" href="utils_8h-source.html">utils.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Wed Dec 19 00:15:20 2007 for libqtpod by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address>
</body>
</html>