Sophie

Sophie

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

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;::FilteredConstIterator&lt; TUnaryPredicate &gt; Struct 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="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html">FilteredConstIterator</a></div>
<h1>itunesdb::utils::SortablePtrVector&lt; ElemType &gt;::FilteredConstIterator&lt; TUnaryPredicate &gt; Struct Template Reference</h1><!-- doxytag: class="itunesdb::utils::SortablePtrVector::FilteredConstIterator" --><!-- doxytag: inherits="itunesdb::utils::SortablePtrVector::ContainerVersionAwareIterator" --><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;::FilteredConstIterator&lt; TUnaryPredicate &gt;:
<p><center><img src="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.png" usemap="#itunesdb::utils::SortablePtrVector< ElemType >::FilteredConstIterator< TUnaryPredicate >_map" border="0" alt=""></center>
<map name="itunesdb::utils::SortablePtrVector< ElemType >::FilteredConstIterator< TUnaryPredicate >_map">
<area href="classitunesdb_1_1utils_1_1SortablePtrVector_1_1ContainerVersionAwareIterator.html" alt="itunesdb::utils::SortablePtrVector< ElemType >::ContainerVersionAwareIterator< Container_T, Iter_T, TUnaryPredicate >" shape="rect" coords="0,56,693,80">
<area href="classitunesdb_1_1utils_1_1RangeIterator.html" alt="itunesdb::utils::RangeIterator< ElemType *, Iter_T, TUnaryPredicate >" shape="rect" coords="0,0,693,24">
</map>
<a href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator-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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html#9ced27168a8d71adcd50439b4a049f7a">FilteredConstIterator</a> (const <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">SortablePtrVector</a> &amp;container, const TUnaryPredicate &amp;predicate=TUnaryPredicate())</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html">FilteredConstIterator</a> over all elements in container matching the given predicate.  <a href="#9ced27168a8d71adcd50439b4a049f7a"></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#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">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>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="740536f3da868098bb7adf615124fe99"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::FilteredConstIterator::SortablePtrVector" ref="740536f3da868098bb7adf615124fe99" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>SortablePtrVector</b></td></tr>

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

A filtered const Iterator over the elements of this container where the given predicate returned true. <dl class="see" compact><dt><b>See also:</b></dt><dd><code><a class="el" href="classitunesdb_1_1utils_1_1RangeIterator.html">RangeIterator</a></code> for more details </dd></dl>

<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="100d6ac294356919fa6a55004726553c"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::FilteredConstIterator::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, inherited]</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="9ced27168a8d71adcd50439b4a049f7a"></a><!-- doxytag: member="itunesdb::utils::SortablePtrVector::FilteredConstIterator::FilteredConstIterator" ref="9ced27168a8d71adcd50439b4a049f7a" args="(const SortablePtrVector &amp;container, const TUnaryPredicate &amp;predicate=TUnaryPredicate())" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ElemType&gt; </div>
<div class="memtemplate">
template&lt;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="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html">FilteredConstIterator</a>&lt; TUnaryPredicate &gt;::<a class="el" href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html">FilteredConstIterator</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classitunesdb_1_1utils_1_1SortablePtrVector.html">SortablePtrVector</a> &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>predicate</em> = <code>TUnaryPredicate()</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new <a class="el" href="structitunesdb_1_1utils_1_1SortablePtrVector_1_1FilteredConstIterator.html">FilteredConstIterator</a> over all elements in container matching the given predicate. 
<p>
<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 iterator over </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>predicate</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::FilteredConstIterator::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, inherited]</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::FilteredConstIterator::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, inherited]</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::FilteredConstIterator::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::FilteredConstIterator::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::FilteredConstIterator::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::FilteredConstIterator::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::FilteredConstIterator::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::FilteredConstIterator::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::FilteredConstIterator::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::FilteredConstIterator::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, inherited]</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::FilteredConstIterator::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, inherited]</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::FilteredConstIterator::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::FilteredConstIterator::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 struct 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>