Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > c74ab286c3d46f9b82671d206e43a74b > files > 89

libstdc++-docs-4.6.3-2.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>libstdc++: __gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libstdc++</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00083.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt; Class Template Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="__gnu_debug::_Safe_iterator" --><!-- doxytag: inherits="__gnu_debug::_Safe_iterator_base" -->
<p>Safe iterator wrapper.  
 <a href="a00083.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for __gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a01511.png" border="0" usemap="#____gnu__debug_1_1___safe__iterator_3_01___iterator_00_01___sequence_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="____gnu__debug_1_1___safe__iterator_3_01___iterator_00_01___sequence_01_4_inherit__map" id="____gnu__debug_1_1___safe__iterator_3_01___iterator_00_01___sequence_01_4_inherit__map">
<area shape="rect" id="node2" href="a00084.html" title="Basic functionality for a safe iterator." alt="" coords="55,5,271,35"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="a01512.html">List of all members.</a></p>
<h2><a name="pub-types"></a>
Public Types</h2>
<ul>
<li><a class="anchor" id="acae5ae9a2cd3de3a23c64139c5e28f42"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::difference_type" ref="acae5ae9a2cd3de3a23c64139c5e28f42" args="" -->
typedef _Traits::difference_type <b>difference_type</b>
<li><a class="anchor" id="a0d2f2091f2d0a3656ead707fca898bc9"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::iterator_category" ref="a0d2f2091f2d0a3656ead707fca898bc9" args="" -->
typedef _Traits::iterator_category <b>iterator_category</b>
<li><a class="anchor" id="a7d0a45b7a37545c06d879e691ff82fad"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::iterator_type" ref="a7d0a45b7a37545c06d879e691ff82fad" args="" -->
typedef _Iterator <b>iterator_type</b>
<li><a class="anchor" id="a3677accf2e7871b3fe88a737a29748c0"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::pointer" ref="a3677accf2e7871b3fe88a737a29748c0" args="" -->
typedef _Traits::pointer <b>pointer</b>
<li><a class="anchor" id="a1391857d0d0a6f0f84278f057b4e788c"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::reference" ref="a1391857d0d0a6f0f84278f057b4e788c" args="" -->
typedef _Traits::reference <b>reference</b>
<li><a class="anchor" id="a220ced344a88552c03752484168e7e29"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::value_type" ref="a220ced344a88552c03752484168e7e29" args="" -->
typedef _Traits::value_type <b>value_type</b>
</ul>
<h2><a name="pub-methods"></a>
Public Member Functions</h2>
<ul>
<li><a class="el" href="a00083.html#a8ccc818df6ebcf8a543fff45652a366f">_Safe_iterator</a> ()
<li><a class="el" href="a00083.html#a0267233c1de42f6c38838a2088fe59fa">_Safe_iterator</a> (const _Iterator &amp;__i, const _Sequence *__seq)
<li>template&lt;typename _MutableIterator &gt; <a class="el" href="a00083.html#a93ea7f41408d575d72648b86e46a95b8">_Safe_iterator</a> (const <a class="el" href="a00083.html">_Safe_iterator</a>&lt; _MutableIterator, typename __gnu_cxx::__enable_if&lt;(std::__are_same&lt; _MutableIterator, typename _Sequence::iterator::iterator_type &gt;::__value), _Sequence &gt;::__type &gt; &amp;__x)
<li><a class="el" href="a00083.html#a1033a1a5a1fa13706bf148bfdf2c96f9">_Safe_iterator</a> (const <a class="el" href="a00083.html">_Safe_iterator</a> &amp;__x)
<li>void <a class="el" href="a00083.html#acf3709cd9dcb3a7d4c5b7e2c7d975de2">_M_attach</a> (<a class="el" href="a00086.html">_Safe_sequence_base</a> *__seq)
<li>void <a class="el" href="a00084.html#a51809843192abdf6415ec0342fb0fdb9">_M_attach</a> (<a class="el" href="a00086.html">_Safe_sequence_base</a> *__seq, bool __constant)
<li>void <a class="el" href="a00084.html#a45148b9f8f44371fedfd62f39827a18b">_M_attach_single</a> (<a class="el" href="a00086.html">_Safe_sequence_base</a> *__seq, bool __constant)  throw ()
<li>void <a class="el" href="a00083.html#a5c2eb995642e4aff7cce9d21def9d0e1">_M_attach_single</a> (<a class="el" href="a00086.html">_Safe_sequence_base</a> *__seq)
<li>bool <a class="el" href="a00084.html#ae69cdad25054791e84529f85287261b8">_M_attached_to</a> (const <a class="el" href="a00086.html">_Safe_sequence_base</a> *__seq) const 
<li>bool <a class="el" href="a00083.html#a227c19925e54f70b583d09a067ae7f2a">_M_before_dereferenceable</a> () const 
<li><a class="anchor" id="a8d5e884d15962d8dd9ada57fabcf013c"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_can_advance" ref="a8d5e884d15962d8dd9ada57fabcf013c" args="(const difference_type &amp;__n) const " -->
bool <b>_M_can_advance</b> (const difference_type &amp;__n) const 
<li>bool <a class="el" href="a00084.html#a116f8a9757b9966e5f62a92e00874235">_M_can_compare</a> (const <a class="el" href="a00084.html">_Safe_iterator_base</a> &amp;__x) const   throw ()
<li><a class="anchor" id="ac9888a0e0ea245c5abf5d8ecdd512b41"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_decrementable" ref="ac9888a0e0ea245c5abf5d8ecdd512b41" args="() const " -->
bool <b>_M_decrementable</b> () const 
<li>bool <a class="el" href="a00083.html#a7c7ec79298f46a509ff084a97c9fe04f">_M_dereferenceable</a> () const 
<li>void <a class="el" href="a00084.html#a8deb31273aaf1912a5540ae046581c54">_M_detach</a> ()
<li>void <a class="el" href="a00084.html#af1899eb4a27c3de8a74e9bf24dc920b4">_M_detach_single</a> ()  throw ()
<li><a class="anchor" id="a317cc9192097fbb64df898841a21edd2"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_get_sequence" ref="a317cc9192097fbb64df898841a21edd2" args="() const " -->
const _Sequence * <b>_M_get_sequence</b> () const 
<li>bool <a class="el" href="a00083.html#a9be36d64b86ab0327a9714d3c80cec9a">_M_incrementable</a> () const 
<li>void <a class="el" href="a00084.html#a231c2eca561476c79c326ae696512cd2">_M_invalidate</a> ()
<li>bool <a class="el" href="a00083.html#a5acb73391a8b55ac33a6c150fef55190">_M_is_before_begin</a> () const 
<li>bool <a class="el" href="a00083.html#ad493611c271d0c90dcebce3bdcedee61">_M_is_begin</a> () const 
<li>bool <a class="el" href="a00083.html#a5b32f80d23a3ff94d5d78f0c813a738b">_M_is_end</a> () const 
<li>void <a class="el" href="a00084.html#a1546bb95326eb29d175cb45140a128dd">_M_reset</a> ()  throw ()
<li>bool <a class="el" href="a00084.html#a9e0a963382b77c7d0de556fc23a821e6">_M_singular</a> () const   throw ()
<li>void <a class="el" href="a00084.html#a15200550c9de14f693bd2fd9badbce2b">_M_unlink</a> ()  throw ()
<li><a class="anchor" id="ad1f82be545476b4777f85edcfd68bce9"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_valid_range" ref="ad1f82be545476b4777f85edcfd68bce9" args="(const _Safe_iterator&lt; _Other, _Sequence &gt; &amp;__rhs) const " -->
template&lt;typename _Other &gt; bool <b>_M_valid_range</b> (const <a class="el" href="a00083.html">_Safe_iterator</a>&lt; _Other, _Sequence &gt; &amp;__rhs) const 
<li>_Iterator <a class="el" href="a00083.html#a5a610548d6e4e7306ce3067bfd14cc0c">base</a> () const 
<li><a class="el" href="a00083.html#a0be7316a3a248fb75d37cce712dcf57f">operator _Iterator</a> () const 
<li>reference <a class="el" href="a00083.html#afb57155a415341e1913445680ebf215a">operator*</a> () const 
<li><a class="anchor" id="acf78af8842eb66acb2f7d825de88cf46"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator+" ref="acf78af8842eb66acb2f7d825de88cf46" args="(const difference_type &amp;__n) const " -->
<a class="el" href="a00083.html">_Safe_iterator</a> <b>operator+</b> (const difference_type &amp;__n) const 
<li><a class="el" href="a00083.html">_Safe_iterator</a> &amp; <a class="el" href="a00083.html#a3454cf297f89fd9107bce020f2dab3da">operator++</a> ()
<li><a class="el" href="a00083.html">_Safe_iterator</a> <a class="el" href="a00083.html#acb0608bae9a7b9e33ea234cb36018a5a">operator++</a> (int)
<li><a class="anchor" id="a64b505d36edb9461efc5c633cd589ed9"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator+=" ref="a64b505d36edb9461efc5c633cd589ed9" args="(const difference_type &amp;__n)" -->
<a class="el" href="a00083.html">_Safe_iterator</a> &amp; <b>operator+=</b> (const difference_type &amp;__n)
<li><a class="anchor" id="af631df23208189fb495ea78befdcb60a"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator&#45;" ref="af631df23208189fb495ea78befdcb60a" args="(const difference_type &amp;__n) const " -->
<a class="el" href="a00083.html">_Safe_iterator</a> <b>operator-</b> (const difference_type &amp;__n) const 
<li><a class="el" href="a00083.html">_Safe_iterator</a> &amp; <a class="el" href="a00083.html#a2c9d8d26dee38fdd97d0bedca2967fd9">operator--</a> ()
<li><a class="el" href="a00083.html">_Safe_iterator</a> <a class="el" href="a00083.html#a67baa23d5ac39497a5b6524d4d8715ae">operator--</a> (int)
<li><a class="anchor" id="a036b3d0641c585d581c83fc4ae5b41d8"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator&#45;=" ref="a036b3d0641c585d581c83fc4ae5b41d8" args="(const difference_type &amp;__n)" -->
<a class="el" href="a00083.html">_Safe_iterator</a> &amp; <b>operator-=</b> (const difference_type &amp;__n)
<li>pointer <a class="el" href="a00083.html#a7619cc0f8076506151f44adf987a9752">operator-&gt;</a> () const 
<li><a class="el" href="a00083.html">_Safe_iterator</a> &amp; <a class="el" href="a00083.html#a4dfe94f1989acdf52a54e62fcbc4fd26">operator=</a> (const <a class="el" href="a00083.html">_Safe_iterator</a> &amp;__x)
<li><a class="anchor" id="a3394ff5e47cc0af80354c73a1334c982"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator[]" ref="a3394ff5e47cc0af80354c73a1334c982" args="(const difference_type &amp;__n) const " -->
reference <b>operator[]</b> (const difference_type &amp;__n) const 
</ul>
<h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2>
<ul>
<li>template&lt;typename _Iterator1 , typename _Iterator2 &gt; static <a class="el" href="a00263.html">std::pair</a><br class="typebreak"/>
&lt; difference_type, <br class="typebreak"/>
_Distance_precision &gt; <a class="el" href="a00083.html#a2dc146a45453deb56ae0a0e8e5d6e1b1">_M_get_distance</a> (const _Iterator1 &amp;__lhs, const _Iterator2 &amp;__rhs)
<li><a class="anchor" id="a0107fd5728c4d04880387f993b483501"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_get_distance" ref="a0107fd5728c4d04880387f993b483501" args="(const _Iterator1 &amp;__lhs, const _Iterator2 &amp;__rhs, std::forward_iterator_tag)" -->
template&lt;typename _Iterator1 , typename _Iterator2 &gt; static <a class="el" href="a00263.html">std::pair</a><br class="typebreak"/>
&lt; difference_type, <br class="typebreak"/>
_Distance_precision &gt; <b>_M_get_distance</b> (const _Iterator1 &amp;__lhs, const _Iterator2 &amp;__rhs, <a class="el" href="a00474.html">std::forward_iterator_tag</a>)
<li><a class="anchor" id="a84bfe69de4c6df6ab864e8fcfd9ecb73"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_get_distance" ref="a84bfe69de4c6df6ab864e8fcfd9ecb73" args="(const _Iterator1 &amp;__lhs, const _Iterator2 &amp;__rhs, std::random_access_iterator_tag)" -->
template&lt;typename _Iterator1 , typename _Iterator2 &gt; static <a class="el" href="a00263.html">std::pair</a><br class="typebreak"/>
&lt; difference_type, <br class="typebreak"/>
_Distance_precision &gt; <b>_M_get_distance</b> (const _Iterator1 &amp;__lhs, const _Iterator2 &amp;__rhs, <a class="el" href="a00667.html">std::random_access_iterator_tag</a>)
</ul>
<h2><a name="pub-attribs"></a>
Public Attributes</h2>
<ul>
<li><a class="el" href="a00084.html">_Safe_iterator_base</a> * <a class="el" href="a00084.html#ae1d73bfac68a69f3ffe56c0f0d4c6063">_M_next</a>
<li><a class="el" href="a00084.html">_Safe_iterator_base</a> * <a class="el" href="a00084.html#ad3aa8afe2713aba16a79e934cbe50f1c">_M_prior</a>
<li><a class="el" href="a00086.html">_Safe_sequence_base</a> * <a class="el" href="a00084.html#a0ee820218a8e43841a84d866dc94f1e3">_M_sequence</a>
<li>unsigned int <a class="el" href="a00084.html#ad07568d7660eb8b85493b548d10c637a">_M_version</a>
</ul>
<h2><a name="pro-methods"></a>
Protected Member Functions</h2>
<ul>
<li>__gnu_cxx::__mutex &amp; <a class="el" href="a00084.html#a8503df34e352af4f20a519bd5a2ffc10">_M_get_mutex</a> ()  throw ()
</ul>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename _Iterator, typename _Sequence&gt;<br/>
class __gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;</h3>

<p>Safe iterator wrapper. </p>
<p>The class template _Safe_iterator is a wrapper around an iterator that tracks the iterator's movement among sequences and checks that operations performed on the "safe" iterator are legal. In additional to the basic iterator operations (which are validated, and then passed to the underlying iterator), _Safe_iterator has member functions for iterator invalidation, attaching/detaching the iterator from sequences, and querying the iterator's state. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00077">77</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a8ccc818df6ebcf8a543fff45652a366f"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_Safe_iterator" ref="a8ccc818df6ebcf8a543fff45652a366f" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::<a class="el" href="a00083.html">_Safe_iterator</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="post"><dt><b>Postcondition:</b></dt><dd>the iterator is singular and unattached </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00113">113</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0267233c1de42f6c38838a2088fe59fa"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_Safe_iterator" ref="a0267233c1de42f6c38838a2088fe59fa" args="(const _Iterator &amp;__i, const _Sequence *__seq)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::<a class="el" href="a00083.html">_Safe_iterator</a> </td>
          <td>(</td>
          <td class="paramtype">const _Iterator &amp;&#160;</td>
          <td class="paramname"><em>__i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const _Sequence *&#160;</td>
          <td class="paramname"><em>__seq</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safe iterator construction from an unsafe iterator and its sequence. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd><code>seq</code> is not NULL </dd></dl>
<dl class="post"><dt><b>Postcondition:</b></dt><dd>this is not singular </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00122">122</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, and <a class="el" href="a00084.html#a9e0a963382b77c7d0de556fc23a821e6">__gnu_debug::_Safe_iterator_base::_M_singular()</a>.</p>

</div>
</div>
<a class="anchor" id="a1033a1a5a1fa13706bf148bfdf2c96f9"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_Safe_iterator" ref="a1033a1a5a1fa13706bf148bfdf2c96f9" args="(const _Safe_iterator &amp;__x)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::<a class="el" href="a00083.html">_Safe_iterator</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00083.html">_Safe_iterator</a>&lt; _Iterator, _Sequence &gt; &amp;&#160;</td>
          <td class="paramname"><em>__x</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy construction. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00133">133</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, and <a class="el" href="a00084.html#a9e0a963382b77c7d0de556fc23a821e6">__gnu_debug::_Safe_iterator_base::_M_singular()</a>.</p>

</div>
</div>
<a class="anchor" id="a93ea7f41408d575d72648b86e46a95b8"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_Safe_iterator" ref="a93ea7f41408d575d72648b86e46a95b8" args="(const _Safe_iterator&lt; _MutableIterator, typename __gnu_cxx::__enable_if&lt;(std::__are_same&lt; _MutableIterator, typename _Sequence::iterator::iterator_type &gt;::__value), _Sequence &gt;::__type &gt; &amp;__x)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
<div class="memtemplate">
template&lt;typename _MutableIterator &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::<a class="el" href="a00083.html">_Safe_iterator</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00083.html">_Safe_iterator</a>&lt; _MutableIterator, typename __gnu_cxx::__enable_if&lt;(std::__are_same&lt; _MutableIterator, typename _Sequence::iterator::iterator_type &gt;::__value), _Sequence &gt;::__type &gt; &amp;&#160;</td>
          <td class="paramname"><em>__x</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converting constructor from a mutable iterator to a constant iterator. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00150">150</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="acf3709cd9dcb3a7d4c5b7e2c7d975de2"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_attach" ref="acf3709cd9dcb3a7d4c5b7e2c7d975de2" args="(_Safe_sequence_base *__seq)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_attach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">_Safe_sequence_base</a> *&#160;</td>
          <td class="paramname"><em>__seq</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Attach iterator to the given sequence. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00335">335</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>Referenced by <a class="el" href="a01018_source.html#l00170">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::operator=()</a>.</p>

</div>
</div>
<a class="anchor" id="a51809843192abdf6415ec0342fb0fdb9"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_attach" ref="a51809843192abdf6415ec0342fb0fdb9" args="(_Safe_sequence_base *__seq, bool __constant)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_attach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">_Safe_sequence_base</a> *&#160;</td>
          <td class="paramname"><em>__seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>__constant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Attaches this iterator to the given sequence, detaching it from whatever sequence it was attached to originally. If the new sequence is the NULL pointer, the iterator is left unattached. </p>

<p>Referenced by <a class="el" href="a01017_source.html#l00088">__gnu_debug::_Safe_iterator_base::_Safe_iterator_base()</a>.</p>

</div>
</div>
<a class="anchor" id="a5c2eb995642e4aff7cce9d21def9d0e1"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_attach_single" ref="a5c2eb995642e4aff7cce9d21def9d0e1" args="(_Safe_sequence_base *__seq)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_attach_single </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">_Safe_sequence_base</a> *&#160;</td>
          <td class="paramname"><em>__seq</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Likewise, but not thread-safe. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00342">342</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a45148b9f8f44371fedfd62f39827a18b"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_attach_single" ref="a45148b9f8f44371fedfd62f39827a18b" args="(_Safe_sequence_base *__seq, bool __constant)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_attach_single </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00086.html">_Safe_sequence_base</a> *&#160;</td>
          <td class="paramname"><em>__seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>__constant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>  throw ()<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Likewise, but not thread-safe. </p>

</div>
</div>
<a class="anchor" id="ae69cdad25054791e84529f85287261b8"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_attached_to" ref="ae69cdad25054791e84529f85287261b8" args="(const _Safe_sequence_base *__seq) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool __gnu_debug::_Safe_iterator_base::_M_attached_to </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00086.html">_Safe_sequence_base</a> *&#160;</td>
          <td class="paramname"><em>__seq</em></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Determines if we are attached to the given sequence. </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00130">130</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>References <a class="el" href="a01017_source.html#l00056">__gnu_debug::_Safe_iterator_base::_M_sequence</a>.</p>

</div>
</div>
<a class="anchor" id="a227c19925e54f70b583d09a067ae7f2a"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_before_dereferenceable" ref="a227c19925e54f70b583d09a067ae7f2a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_before_dereferenceable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Is the iterator before a dereferenceable one? </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00354">354</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a01018_source.html#l00349">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_dereferenceable()</a>, and <a class="el" href="a01018_source.html#l00362">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_incrementable()</a>.</p>

</div>
</div>
<a class="anchor" id="a116f8a9757b9966e5f62a92e00874235"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_can_compare" ref="a116f8a9757b9966e5f62a92e00874235" args="(const _Safe_iterator_base &amp;__x) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool __gnu_debug::_Safe_iterator_base::_M_can_compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00084.html">_Safe_iterator_base</a> &amp;&#160;</td>
          <td class="paramname"><em>__x</em></td><td>)</td>
          <td> const  throw ()<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Can we compare this iterator to the given iterator <code>__x</code>? Returns true if both iterators are nonsingular and reference the same sequence. </p>

</div>
</div>
<a class="anchor" id="a7c7ec79298f46a509ff084a97c9fe04f"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_dereferenceable" ref="a7c7ec79298f46a509ff084a97c9fe04f" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_dereferenceable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Is the iterator dereferenceable? </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00349">349</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a01018_source.html#l00417">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_is_before_begin()</a>, <a class="el" href="a01018_source.html#l00412">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_is_end()</a>, and <a class="el" href="a00084.html#a9e0a963382b77c7d0de556fc23a821e6">__gnu_debug::_Safe_iterator_base::_M_singular()</a>.</p>

<p>Referenced by <a class="el" href="a00887_source.html#l00082">__gnu_debug::__check_dereferenceable()</a>, <a class="el" href="a01018_source.html#l00354">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_before_dereferenceable()</a>, <a class="el" href="a01018_source.html#l00189">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::operator*()</a>, and <a class="el" href="a01018_source.html#l00204">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::operator-&gt;()</a>.</p>

</div>
</div>
<a class="anchor" id="a8deb31273aaf1912a5540ae046581c54"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_detach" ref="a8deb31273aaf1912a5540ae046581c54" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_detach </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Detach the iterator for whatever sequence it is attached to, if any. </p>

</div>
</div>
<a class="anchor" id="af1899eb4a27c3de8a74e9bf24dc920b4"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_detach_single" ref="af1899eb4a27c3de8a74e9bf24dc920b4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_detach_single </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>  throw ()<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Likewise, but not thread-safe. </p>

<p>Referenced by <a class="el" href="a01021_source.html#l00069">__gnu_debug::_Safe_sequence&lt; _Sequence &gt;::_M_transfer_from_if()</a>.</p>

</div>
</div>
<a class="anchor" id="a2dc146a45453deb56ae0a0e8e5d6e1b1"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_get_distance" ref="a2dc146a45453deb56ae0a0e8e5d6e1b1" args="(const _Iterator1 &amp;__lhs, const _Iterator2 &amp;__rhs)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
<div class="memtemplate">
template&lt;typename _Iterator1 , typename _Iterator2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00263.html">std::pair</a>&lt;difference_type, _Distance_precision&gt; <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_get_distance </td>
          <td>(</td>
          <td class="paramtype">const _Iterator1 &amp;&#160;</td>
          <td class="paramname"><em>__lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const _Iterator2 &amp;&#160;</td>
          <td class="paramname"><em>__rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Determine the distance between two iterators with some known precision. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00388">388</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8503df34e352af4f20a519bd5a2ffc10"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_get_mutex" ref="a8503df34e352af4f20a519bd5a2ffc10" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__gnu_cxx::__mutex&amp; __gnu_debug::_Safe_iterator_base::_M_get_mutex </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>  throw ()<code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>For use in <a class="el" href="a00083.html" title="Safe iterator wrapper.">_Safe_iterator</a>. </p>

</div>
</div>
<a class="anchor" id="a9be36d64b86ab0327a9714d3c80cec9a"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_incrementable" ref="a9be36d64b86ab0327a9714d3c80cec9a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_incrementable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Is the iterator incrementable? </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00362">362</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a01018_source.html#l00412">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_is_end()</a>, and <a class="el" href="a00084.html#a9e0a963382b77c7d0de556fc23a821e6">__gnu_debug::_Safe_iterator_base::_M_singular()</a>.</p>

<p>Referenced by <a class="el" href="a01018_source.html#l00354">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_before_dereferenceable()</a>, and <a class="el" href="a01018_source.html#l00218">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::operator++()</a>.</p>

</div>
</div>
<a class="anchor" id="a231c2eca561476c79c326ae696512cd2"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_invalidate" ref="a231c2eca561476c79c326ae696512cd2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_invalidate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Invalidate the iterator, making it singular. </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00143">143</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>References <a class="el" href="a01017_source.html#l00065">__gnu_debug::_Safe_iterator_base::_M_version</a>.</p>

</div>
</div>
<a class="anchor" id="a5acb73391a8b55ac33a6c150fef55190"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_is_before_begin" ref="a5acb73391a8b55ac33a6c150fef55190" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_is_before_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Is this iterator equal to the sequence's before_begin() iterator if any? </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00417">417</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a01018_source.html#l00325">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::base()</a>.</p>

<p>Referenced by <a class="el" href="a01018_source.html#l00349">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_dereferenceable()</a>.</p>

</div>
</div>
<a class="anchor" id="ad493611c271d0c90dcebce3bdcedee61"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_is_begin" ref="ad493611c271d0c90dcebce3bdcedee61" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_is_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Is this iterator equal to the sequence's <a class="el" href="a01137.html#a374103e627e735969f3357b0f771bc0d" title="Return an iterator pointing to the first element of the initilizer_list.">begin()</a> iterator? </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00408">408</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a01018_source.html#l00325">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::base()</a>.</p>

</div>
</div>
<a class="anchor" id="a5b32f80d23a3ff94d5d78f0c813a738b"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_is_end" ref="a5b32f80d23a3ff94d5d78f0c813a738b" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::_M_is_end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Is this iterator equal to the sequence's <a class="el" href="a01137.html#a6dd13574db6c6bda00577c2e1687960a" title="Return an iterator pointing to one past the last element of the initilizer_list.">end()</a> iterator? </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00412">412</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a01018_source.html#l00325">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::base()</a>.</p>

<p>Referenced by <a class="el" href="a01018_source.html#l00349">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_dereferenceable()</a>, and <a class="el" href="a01018_source.html#l00362">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_incrementable()</a>.</p>

</div>
</div>
<a class="anchor" id="a1546bb95326eb29d175cb45140a128dd"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_reset" ref="a1546bb95326eb29d175cb45140a128dd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>  throw ()<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset all member variables </p>

</div>
</div>
<a class="anchor" id="a9e0a963382b77c7d0de556fc23a821e6"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_singular" ref="a9e0a963382b77c7d0de556fc23a821e6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool __gnu_debug::_Safe_iterator_base::_M_singular </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const  throw ()<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Is this iterator singular? </p>

<p>Referenced by <a class="el" href="a00887_source.html#l00063">__gnu_debug::__check_singular()</a>, <a class="el" href="a01018_source.html#l00062">__gnu_debug::__check_singular_aux()</a>, <a class="el" href="a01018_source.html#l00349">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_dereferenceable()</a>, <a class="el" href="a01018_source.html#l00362">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_incrementable()</a>, <a class="el" href="a01018_source.html#l00122">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_Safe_iterator()</a>, and <a class="el" href="a01018_source.html#l00170">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::operator=()</a>.</p>

</div>
</div>
<a class="anchor" id="a15200550c9de14f693bd2fd9badbce2b"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_unlink" ref="a15200550c9de14f693bd2fd9badbce2b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_debug::_Safe_iterator_base::_M_unlink </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>  throw ()<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Unlink itself </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00152">152</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>References <a class="el" href="a01017_source.html#l00073">__gnu_debug::_Safe_iterator_base::_M_next</a>, and <a class="el" href="a01017_source.html#l00069">__gnu_debug::_Safe_iterator_base::_M_prior</a>.</p>

</div>
</div>
<a class="anchor" id="a5a610548d6e4e7306ce3067bfd14cc0c"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::base" ref="a5a610548d6e4e7306ce3067bfd14cc0c" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Iterator <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::base </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the underlying iterator. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00325">325</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>Referenced by <a class="el" href="a01018_source.html#l00417">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_is_before_begin()</a>, <a class="el" href="a01018_source.html#l00408">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_is_begin()</a>, and <a class="el" href="a01018_source.html#l00412">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_is_end()</a>.</p>

</div>
</div>
<a class="anchor" id="a0be7316a3a248fb75d37cce712dcf57f"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator _Iterator" ref="a0be7316a3a248fb75d37cce712dcf57f" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator _Iterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Conversion to underlying non-debug iterator to allow better interaction with non-debug containers. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00331">331</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

</div>
</div>
<a class="anchor" id="afb57155a415341e1913445680ebf215a"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator*" ref="afb57155a415341e1913445680ebf215a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">reference <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator* </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterator dereference. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>iterator is dereferenceable </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00189">189</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, and <a class="el" href="a01018_source.html#l00349">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_dereferenceable()</a>.</p>

</div>
</div>
<a class="anchor" id="acb0608bae9a7b9e33ea234cb36018a5a"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator++" ref="acb0608bae9a7b9e33ea234cb36018a5a" args="(int)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">_Safe_iterator</a> <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator++ </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterator postincrement. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>iterator is incrementable </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00232">232</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, and <a class="el" href="a01018_source.html#l00362">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_incrementable()</a>.</p>

</div>
</div>
<a class="anchor" id="a3454cf297f89fd9107bce020f2dab3da"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator++" ref="a3454cf297f89fd9107bce020f2dab3da" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">_Safe_iterator</a>&amp; <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator++ </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterator preincrement. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>iterator is incrementable </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00218">218</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, and <a class="el" href="a01018_source.html#l00362">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_incrementable()</a>.</p>

</div>
</div>
<a class="anchor" id="a67baa23d5ac39497a5b6524d4d8715ae"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator&#45;&#45;" ref="a67baa23d5ac39497a5b6524d4d8715ae" args="(int)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">_Safe_iterator</a> <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator-- </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterator postdecrement. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>iterator is decrementable </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00262">262</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>.</p>

</div>
</div>
<a class="anchor" id="a2c9d8d26dee38fdd97d0bedca2967fd9"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator&#45;&#45;" ref="a2c9d8d26dee38fdd97d0bedca2967fd9" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">_Safe_iterator</a>&amp; <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator-- </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterator predecrement. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>iterator is decrementable </dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00248">248</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>.</p>

</div>
</div>
<a class="anchor" id="a7619cc0f8076506151f44adf987a9752"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator&#45;&gt;" ref="a7619cc0f8076506151f44adf987a9752" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">pointer <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator-&gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Iterator dereference. </p>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>iterator is dereferenceable </dd></dl>
<dl class="todo"><dt><b><a class="el" href="a01213.html#_todo000065">Todo:</a></b></dt><dd><p class="startdd">Make this correct w.r.t. iterators that return proxies </p>
<p class="enddd">Use <a class="el" href="a01137.html#a676689a57b2ff4809aed20a47aaefeb3" title="declval, from type_traits.">addressof()</a> instead of &amp; operator </p>
</dd></dl>

<p>Definition at line <a class="el" href="a01018_source.html#l00204">204</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, and <a class="el" href="a01018_source.html#l00349">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_dereferenceable()</a>.</p>

</div>
</div>
<a class="anchor" id="a4dfe94f1989acdf52a54e62fcbc4fd26"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::operator=" ref="a4dfe94f1989acdf52a54e62fcbc4fd26" args="(const _Safe_iterator &amp;__x)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Iterator, typename _Sequence&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00083.html">_Safe_iterator</a>&amp; <a class="el" href="a00083.html">__gnu_debug::_Safe_iterator</a>&lt; _Iterator, _Sequence &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00083.html">_Safe_iterator</a>&lt; _Iterator, _Sequence &gt; &amp;&#160;</td>
          <td class="paramname"><em>__x</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy assignment. </p>

<p>Definition at line <a class="el" href="a01018_source.html#l00170">170</a> of file <a class="el" href="a01018_source.html">safe_iterator.h</a>.</p>

<p>References <a class="el" href="a00934_source.html#l00042">_GLIBCXX_DEBUG_VERIFY</a>, <a class="el" href="a01018_source.html#l00335">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::_M_attach()</a>, <a class="el" href="a01017_source.html#l00056">__gnu_debug::_Safe_iterator_base::_M_sequence</a>, and <a class="el" href="a00084.html#a9e0a963382b77c7d0de556fc23a821e6">__gnu_debug::_Safe_iterator_base::_M_singular()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ae1d73bfac68a69f3ffe56c0f0d4c6063"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_next" ref="ae1d73bfac68a69f3ffe56c0f0d4c6063" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00084.html">_Safe_iterator_base</a>* <a class="el" href="a00084.html#ae1d73bfac68a69f3ffe56c0f0d4c6063">__gnu_debug::_Safe_iterator_base::_M_next</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Pointer to the next iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL. </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00073">73</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>Referenced by <a class="el" href="a01021_source.html#l00069">__gnu_debug::_Safe_sequence&lt; _Sequence &gt;::_M_transfer_from_if()</a>, and <a class="el" href="a01017_source.html#l00152">__gnu_debug::_Safe_iterator_base::_M_unlink()</a>.</p>

</div>
</div>
<a class="anchor" id="ad3aa8afe2713aba16a79e934cbe50f1c"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_prior" ref="ad3aa8afe2713aba16a79e934cbe50f1c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00084.html">_Safe_iterator_base</a>* <a class="el" href="a00084.html#ad3aa8afe2713aba16a79e934cbe50f1c">__gnu_debug::_Safe_iterator_base::_M_prior</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Pointer to the previous iterator in the sequence's list of iterators. Only valid when _M_sequence != NULL. </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00069">69</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>Referenced by <a class="el" href="a01021_source.html#l00069">__gnu_debug::_Safe_sequence&lt; _Sequence &gt;::_M_transfer_from_if()</a>, and <a class="el" href="a01017_source.html#l00152">__gnu_debug::_Safe_iterator_base::_M_unlink()</a>.</p>

</div>
</div>
<a class="anchor" id="a0ee820218a8e43841a84d866dc94f1e3"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_sequence" ref="a0ee820218a8e43841a84d866dc94f1e3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00086.html">_Safe_sequence_base</a>* <a class="el" href="a00084.html#a0ee820218a8e43841a84d866dc94f1e3">__gnu_debug::_Safe_iterator_base::_M_sequence</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The sequence this iterator references; may be NULL to indicate a singular iterator. </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00056">56</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>Referenced by <a class="el" href="a01017_source.html#l00130">__gnu_debug::_Safe_iterator_base::_M_attached_to()</a>, <a class="el" href="a01021_source.html#l00069">__gnu_debug::_Safe_sequence&lt; _Sequence &gt;::_M_transfer_from_if()</a>, <a class="el" href="a01017_source.html#l00095">__gnu_debug::_Safe_iterator_base::_Safe_iterator_base()</a>, and <a class="el" href="a01018_source.html#l00170">__gnu_debug::_Safe_iterator&lt; _Iterator, _Sequence &gt;::operator=()</a>.</p>

</div>
</div>
<a class="anchor" id="ad07568d7660eb8b85493b548d10c637a"></a><!-- doxytag: member="__gnu_debug::_Safe_iterator::_M_version" ref="ad07568d7660eb8b85493b548d10c637a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00084.html#ad07568d7660eb8b85493b548d10c637a">__gnu_debug::_Safe_iterator_base::_M_version</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The version number of this iterator. The sentinel value 0 is used to indicate an invalidated iterator (i.e., one that is singular because of an operation on the container). This version number must equal the version number in the sequence referenced by _M_sequence for the iterator to be non-singular. </p>

<p>Definition at line <a class="el" href="a01017_source.html#l00065">65</a> of file <a class="el" href="a01017_source.html">safe_base.h</a>.</p>

<p>Referenced by <a class="el" href="a01017_source.html#l00143">__gnu_debug::_Safe_iterator_base::_M_invalidate()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="a01018_source.html">safe_iterator.h</a></li>
<li><a class="el" href="a01019_source.html">safe_iterator.tcc</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="a01129.html">__gnu_debug</a>      </li>
      <li class="navelem"><a class="el" href="a00083.html">_Safe_iterator</a>      </li>
      <li class="footer">Generated by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
    </ul>
  </div>

</body>
</html>