mirror of
https://github.com/boostorg/ublas.git
synced 2026-02-18 14:32:14 +00:00
1412 lines
219 KiB
HTML
1412 lines
219 KiB
HTML
<!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>Boost.uBlas: iterator.hpp Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<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 onload='searchBox.OnSelectItem(0);'>
|
|
<!-- Generated by Doxygen 1.7.3 -->
|
|
<script type="text/javascript"><!--
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
--></script>
|
|
<script type="text/javascript">
|
|
function hasClass(ele,cls) {
|
|
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
|
|
}
|
|
|
|
function addClass(ele,cls) {
|
|
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
|
|
}
|
|
|
|
function removeClass(ele,cls) {
|
|
if (hasClass(ele,cls)) {
|
|
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
|
|
ele.className=ele.className.replace(reg,' ');
|
|
}
|
|
}
|
|
|
|
function toggleVisibility(linkObj) {
|
|
var base = linkObj.getAttribute('id');
|
|
var summary = document.getElementById(base + '-summary');
|
|
var content = document.getElementById(base + '-content');
|
|
var trigger = document.getElementById(base + '-trigger');
|
|
if ( hasClass(linkObj,'closed') ) {
|
|
summary.style.display = 'none';
|
|
content.style.display = 'block';
|
|
trigger.src = 'open.png';
|
|
removeClass(linkObj,'closed');
|
|
addClass(linkObj,'opened');
|
|
} else if ( hasClass(linkObj,'opened') ) {
|
|
summary.style.display = 'block';
|
|
content.style.display = 'none';
|
|
trigger.src = 'closed.png';
|
|
removeClass(linkObj,'opened');
|
|
addClass(linkObj,'closed');
|
|
}
|
|
return false;
|
|
}
|
|
</script>
|
|
<div id="top">
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="logo boost ublas.png"></td>
|
|
<td style="padding-left: 0.5em;">
|
|
<div id="projectname">Boost.uBlas <span id="projectnumber">1.49</span></div>
|
|
<div id="projectbrief">Linear Algebra in C++: matrices, vectors and numeric algorithms</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
|
<li id="searchli">
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
|
</ul>
|
|
</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('a00616.html','');
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<h1>iterator.hpp</h1> </div>
|
|
</div>
|
|
<div class="contents">
|
|
<a href="a00616.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
|
|
<a name="l00002"></a>00002 <span class="comment">// Copyright (c) 2000-2002</span>
|
|
<a name="l00003"></a>00003 <span class="comment">// Joerg Walter, Mathias Koch</span>
|
|
<a name="l00004"></a>00004 <span class="comment">//</span>
|
|
<a name="l00005"></a>00005 <span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span>
|
|
<a name="l00006"></a>00006 <span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span>
|
|
<a name="l00007"></a>00007 <span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span>
|
|
<a name="l00008"></a>00008 <span class="comment">//</span>
|
|
<a name="l00009"></a>00009 <span class="comment">// The authors gratefully acknowledge the support of</span>
|
|
<a name="l00010"></a>00010 <span class="comment">// GeNeSys mbH & Co. KG in producing this work.</span>
|
|
<a name="l00011"></a>00011 <span class="comment">//</span>
|
|
<a name="l00012"></a>00012
|
|
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef _BOOST_UBLAS_ITERATOR_</span>
|
|
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define _BOOST_UBLAS_ITERATOR_</span>
|
|
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
|
<a name="l00016"></a>00016 <span class="preprocessor">#include <boost/numeric/ublas/exception.hpp></span>
|
|
<a name="l00017"></a>00017 <span class="preprocessor">#include <iterator></span>
|
|
<a name="l00018"></a>00018
|
|
<a name="l00019"></a>00019
|
|
<a name="l00020"></a>00020 <span class="keyword">namespace </span>boost { <span class="keyword">namespace </span>numeric { <span class="keyword">namespace </span>ublas {
|
|
<a name="l00021"></a>00021
|
|
<a name="l00027"></a>00027 <span class="keyword">template</span><<span class="keyword">class</span> C>
|
|
<a name="l00028"></a><a class="code" href="a00069.html">00028</a> <span class="keyword">class </span><a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a>:
|
|
<a name="l00029"></a>00029 <span class="keyword">private</span> <a class="code" href="a00359.html">nonassignable</a> {
|
|
<a name="l00030"></a>00030 <span class="keyword">public</span>:
|
|
<a name="l00031"></a><a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">00031</a> <span class="keyword">typedef</span> C <a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>;
|
|
<a name="l00032"></a>00032
|
|
<a name="l00033"></a>00033 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00034"></a><a class="code" href="a00069.html#a254a9a2d2c9ed6e21a413597b64780fd">00034</a> <a class="code" href="a00069.html#a254a9a2d2c9ed6e21a413597b64780fd">container_const_reference</a> ():
|
|
<a name="l00035"></a>00035 <a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a> (0) {}
|
|
<a name="l00036"></a>00036 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00037"></a><a class="code" href="a00069.html#aced16c6f7805a6923aa5f4a003c97561">00037</a> <a class="code" href="a00069.html#a254a9a2d2c9ed6e21a413597b64780fd">container_const_reference</a> (<span class="keyword">const</span> <a class="code" href="a00155.html" title="An identity matrix with values of type T.">container_type</a> &c):
|
|
<a name="l00038"></a>00038 <a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a> (&c) {}
|
|
<a name="l00039"></a>00039
|
|
<a name="l00040"></a>00040 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00041"></a><a class="code" href="a00069.html#a1ba02c5e916027c57e6679ff81e2f592">00041</a> <span class="keyword">const</span> <a class="code" href="a00155.html" title="An identity matrix with values of type T.">container_type</a> &<a class="code" href="a00069.html#a1ba02c5e916027c57e6679ff81e2f592">operator () </a>()<span class="keyword"> const </span>{
|
|
<a name="l00042"></a>00042 <span class="keywordflow">return</span> *<a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a>;
|
|
<a name="l00043"></a>00043 }
|
|
<a name="l00044"></a>00044
|
|
<a name="l00045"></a>00045 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00046"></a><a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">00046</a> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a> &<a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">assign</a> (<span class="keyword">const</span> <a class="code" href="a00155.html" title="An identity matrix with values of type T.">container_type</a> *c) {
|
|
<a name="l00047"></a>00047 <a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a> = c;
|
|
<a name="l00048"></a>00048 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00049"></a>00049 }
|
|
<a name="l00050"></a>00050
|
|
<a name="l00051"></a>00051 <span class="comment">// Closure comparison</span>
|
|
<a name="l00052"></a>00052 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00053"></a><a class="code" href="a00069.html#a939d3a4b01822247f4a6963d9deb0ca2">00053</a> <span class="keywordtype">bool</span> <a class="code" href="a00069.html#a939d3a4b01822247f4a6963d9deb0ca2">same_closure</a> (<span class="keyword">const</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a> &cr)<span class="keyword"> const </span>{
|
|
<a name="l00054"></a>00054 <span class="keywordflow">return</span> <a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a> == cr.<a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a>;
|
|
<a name="l00055"></a>00055 }
|
|
<a name="l00056"></a>00056
|
|
<a name="l00057"></a>00057 <span class="keyword">private</span>:
|
|
<a name="l00058"></a><a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">00058</a> <span class="keyword">const</span> <a class="code" href="a00155.html" title="An identity matrix with values of type T.">container_type</a> *<a class="code" href="a00069.html#aee16c7c69d962ce9a8bbac442715f906">c_</a>;
|
|
<a name="l00059"></a>00059 };
|
|
<a name="l00060"></a>00060
|
|
<a name="l00066"></a>00066 <span class="keyword">template</span><<span class="keyword">class</span> C>
|
|
<a name="l00067"></a><a class="code" href="a00070.html">00067</a> <span class="keyword">class </span><a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a>:
|
|
<a name="l00068"></a>00068 <span class="keyword">private</span> <a class="code" href="a00359.html">nonassignable</a> {
|
|
<a name="l00069"></a>00069 <span class="keyword">public</span>:
|
|
<a name="l00070"></a><a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">00070</a> <span class="keyword">typedef</span> C <a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>;
|
|
<a name="l00071"></a>00071
|
|
<a name="l00072"></a>00072 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00073"></a><a class="code" href="a00070.html#a76b2efd82e7aee2fa80ac6e92dd56c0e">00073</a> <a class="code" href="a00070.html#a76b2efd82e7aee2fa80ac6e92dd56c0e">container_reference</a> ():
|
|
<a name="l00074"></a>00074 <a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a> (0) {}
|
|
<a name="l00075"></a>00075 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00076"></a><a class="code" href="a00070.html#a85bd1ec0ec27d766573edcd7c0fa1b81">00076</a> <a class="code" href="a00070.html#a76b2efd82e7aee2fa80ac6e92dd56c0e">container_reference</a> (<a class="code" href="a00247.html">container_type</a> &c):
|
|
<a name="l00077"></a>00077 <a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a> (&c) {}
|
|
<a name="l00078"></a>00078
|
|
<a name="l00079"></a>00079 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00080"></a><a class="code" href="a00070.html#abf51982181becbfd117493cbcde4ab2a">00080</a> <a class="code" href="a00247.html">container_type</a> &<a class="code" href="a00070.html#abf51982181becbfd117493cbcde4ab2a">operator () </a>()<span class="keyword"> const </span>{
|
|
<a name="l00081"></a>00081 <span class="keywordflow">return</span> *<a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a>;
|
|
<a name="l00082"></a>00082 }
|
|
<a name="l00083"></a>00083
|
|
<a name="l00084"></a>00084 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00085"></a><a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">00085</a> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a> &<a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">assign</a> (<a class="code" href="a00247.html">container_type</a> *c) {
|
|
<a name="l00086"></a>00086 <a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a> = c;
|
|
<a name="l00087"></a>00087 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00088"></a>00088 }
|
|
<a name="l00089"></a>00089
|
|
<a name="l00090"></a>00090 <span class="comment">// Closure comparison</span>
|
|
<a name="l00091"></a>00091 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00092"></a><a class="code" href="a00070.html#a16e9d44404209c059f4773446faa28c8">00092</a> <span class="keywordtype">bool</span> <a class="code" href="a00070.html#a16e9d44404209c059f4773446faa28c8">same_closure</a> (<span class="keyword">const</span> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a> &cr)<span class="keyword"> const </span>{
|
|
<a name="l00093"></a>00093 <span class="keywordflow">return</span> <a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a> == cr.<a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a>;
|
|
<a name="l00094"></a>00094 }
|
|
<a name="l00095"></a>00095
|
|
<a name="l00096"></a>00096 <span class="keyword">private</span>:
|
|
<a name="l00097"></a><a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">00097</a> <a class="code" href="a00247.html">container_type</a> *<a class="code" href="a00070.html#a8ea335dd112f319488ea344d9751ea2c">c_</a>;
|
|
<a name="l00098"></a>00098 };
|
|
<a name="l00099"></a>00099
|
|
<a name="l00109"></a>00109 <span class="keyword">template</span><<span class="keyword">class</span> IC, <span class="keyword">class</span> I, <span class="keyword">class</span> T>
|
|
<a name="l00110"></a><a class="code" href="a00139.html">00110</a> <span class="keyword">struct </span><a class="code" href="a00139.html" title="Base class of all forward iterators.">forward_iterator_base</a>:
|
|
<a name="l00111"></a>00111 <span class="keyword">public</span> std::<a class="code" href="a00593.html">iterator</a><IC, T> {
|
|
<a name="l00112"></a><a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">00112</a> <span class="keyword">typedef</span> I <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a>;
|
|
<a name="l00113"></a><a class="code" href="a00139.html#add0d18ca21c1aec3f0b584774adfdbe3">00113</a> <span class="keyword">typedef</span> T <a class="code" href="a00139.html#add0d18ca21c1aec3f0b584774adfdbe3">derived_value_type</a>;
|
|
<a name="l00114"></a>00114
|
|
<a name="l00115"></a>00115 <span class="comment">// Arithmetic</span>
|
|
<a name="l00116"></a>00116 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00117"></a><a class="code" href="a00139.html#a2afc77c8acbdced569df7c18db6d7405">00117</a> <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> <a class="code" href="a00139.html#a2afc77c8acbdced569df7c18db6d7405">operator ++ </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00118"></a>00118 <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> &d (*static_cast<const derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00119"></a>00119 <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> tmp (d);
|
|
<a name="l00120"></a>00120 ++ d;
|
|
<a name="l00121"></a>00121 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00122"></a>00122 }
|
|
<a name="l00123"></a>00123 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00124"></a><a class="code" href="a00139.html#a1c0d3ea5f2d7d3b493f4eae9d081d0f1">00124</a> <span class="keyword">friend</span> <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> <a class="code" href="a00139.html#a2afc77c8acbdced569df7c18db6d7405">operator ++ </a>(<a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> &d, <span class="keywordtype">int</span>) {
|
|
<a name="l00125"></a>00125 <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> tmp (d);
|
|
<a name="l00126"></a>00126 ++ d;
|
|
<a name="l00127"></a>00127 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00128"></a>00128 }
|
|
<a name="l00129"></a>00129
|
|
<a name="l00130"></a>00130 <span class="comment">// Comparison</span>
|
|
<a name="l00131"></a>00131 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00132"></a><a class="code" href="a00139.html#a1a2faa6168c7b9cce776e10fc5c75028">00132</a> <span class="keywordtype">bool</span> <a class="code" href="a00139.html#a1a2faa6168c7b9cce776e10fc5c75028">operator != </a>(<span class="keyword">const</span> <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00133"></a>00133 <span class="keyword">const</span> <a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> *d = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="a00139.html#a5df95b4e5ae3783840091081d24f26fa">derived_iterator_type</a> *<span class="keyword">></span> (<span class="keyword">this</span>);
|
|
<a name="l00134"></a>00134 <span class="keywordflow">return</span> ! (*d == it);
|
|
<a name="l00135"></a>00135 }
|
|
<a name="l00136"></a>00136 };
|
|
<a name="l00137"></a>00137
|
|
<a name="l00147"></a>00147 <span class="keyword">template</span><<span class="keyword">class</span> IC, <span class="keyword">class</span> I, <span class="keyword">class</span> T>
|
|
<a name="l00148"></a><a class="code" href="a00003.html">00148</a> <span class="keyword">struct </span><a class="code" href="a00003.html" title="Base class of all bidirectional iterators.">bidirectional_iterator_base</a>:
|
|
<a name="l00149"></a>00149 <span class="keyword">public</span> std::<a class="code" href="a00593.html">iterator</a><IC, T> {
|
|
<a name="l00150"></a><a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">00150</a> <span class="keyword">typedef</span> I <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a>;
|
|
<a name="l00151"></a><a class="code" href="a00003.html#aeab46ff4646edc02c0f8ae51463f7a21">00151</a> <span class="keyword">typedef</span> T <a class="code" href="a00003.html#aeab46ff4646edc02c0f8ae51463f7a21">derived_value_type</a>;
|
|
<a name="l00152"></a>00152
|
|
<a name="l00153"></a>00153 <span class="comment">// Arithmetic</span>
|
|
<a name="l00154"></a>00154 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00155"></a><a class="code" href="a00003.html#a097852b21d99f1a49237471fcee0b25e">00155</a> <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> <a class="code" href="a00003.html#a097852b21d99f1a49237471fcee0b25e">operator ++ </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00156"></a>00156 <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> &d (*static_cast<const derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00157"></a>00157 <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> tmp (d);
|
|
<a name="l00158"></a>00158 ++ d;
|
|
<a name="l00159"></a>00159 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00160"></a>00160 }
|
|
<a name="l00161"></a>00161 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00162"></a><a class="code" href="a00003.html#a1c0d3ea5f2d7d3b493f4eae9d081d0f1">00162</a> <span class="keyword">friend</span> <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> <a class="code" href="a00003.html#a097852b21d99f1a49237471fcee0b25e">operator ++ </a>(<a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> &d, <span class="keywordtype">int</span>) {
|
|
<a name="l00163"></a>00163 <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> tmp (d);
|
|
<a name="l00164"></a>00164 ++ d;
|
|
<a name="l00165"></a>00165 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00166"></a>00166 }
|
|
<a name="l00167"></a>00167 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00168"></a><a class="code" href="a00003.html#ae82209a15688d13011542e8e78898e37">00168</a> <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> <a class="code" href="a00003.html#ae82209a15688d13011542e8e78898e37">operator -- </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00169"></a>00169 <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> &d (*static_cast<const derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00170"></a>00170 <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> tmp (d);
|
|
<a name="l00171"></a>00171 -- d;
|
|
<a name="l00172"></a>00172 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00173"></a>00173 }
|
|
<a name="l00174"></a>00174 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00175"></a><a class="code" href="a00003.html#a19302b59c0ccd2f7c3b208d4ce400259">00175</a> <span class="keyword">friend</span> <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> <a class="code" href="a00003.html#ae82209a15688d13011542e8e78898e37">operator -- </a>(<a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> &d, <span class="keywordtype">int</span>) {
|
|
<a name="l00176"></a>00176 <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> tmp (d);
|
|
<a name="l00177"></a>00177 -- d;
|
|
<a name="l00178"></a>00178 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00179"></a>00179 }
|
|
<a name="l00180"></a>00180
|
|
<a name="l00181"></a>00181 <span class="comment">// Comparison</span>
|
|
<a name="l00182"></a>00182 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00183"></a><a class="code" href="a00003.html#a9b8907521bc4a53f94a76aaefdcb166c">00183</a> <span class="keywordtype">bool</span> <a class="code" href="a00003.html#a9b8907521bc4a53f94a76aaefdcb166c">operator != </a>(<span class="keyword">const</span> <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00184"></a>00184 <span class="keyword">const</span> <a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> *d = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="a00003.html#aa2a285f78325f9aaef2918d462d3bf52">derived_iterator_type</a> *<span class="keyword">></span> (<span class="keyword">this</span>);
|
|
<a name="l00185"></a>00185 <span class="keywordflow">return</span> ! (*d == it);
|
|
<a name="l00186"></a>00186 }
|
|
<a name="l00187"></a>00187 };
|
|
<a name="l00188"></a>00188
|
|
<a name="l00201"></a>00201 <span class="keyword">template</span><<span class="keyword">class</span> IC, <span class="keyword">class</span> I, <span class="keyword">class</span> T, <span class="keyword">class</span> D = std::ptrdiff_t>
|
|
<a name="l00202"></a>00202 <span class="comment">// ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect</span>
|
|
<a name="l00203"></a><a class="code" href="a00365.html">00203</a> <span class="keyword">struct </span><a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a>:
|
|
<a name="l00204"></a>00204 <span class="keyword">public</span> std::<a class="code" href="a00593.html">iterator</a><IC, T> {
|
|
<a name="l00205"></a><a class="code" href="a00365.html#ab67db8b64253554465be5b53fcec475f">00205</a> <span class="keyword">typedef</span> I <a class="code" href="a00365.html#ab67db8b64253554465be5b53fcec475f">derived_iterator_type</a>;
|
|
<a name="l00206"></a><a class="code" href="a00365.html#a1c864936b692a5e8c7ae855ff3a47b2a">00206</a> <span class="keyword">typedef</span> T <a class="code" href="a00365.html#a1c864936b692a5e8c7ae855ff3a47b2a">derived_value_type</a>;
|
|
<a name="l00207"></a><a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">00207</a> <span class="keyword">typedef</span> D <a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">derived_difference_type</a>;
|
|
<a name="l00208"></a>00208
|
|
<a name="l00209"></a>00209 <span class="comment">/* FIXME Need to explicitly pass derived_reference_type as otherwise I undefined type or forward declared</span>
|
|
<a name="l00210"></a>00210 <span class="comment"> typedef typename derived_iterator_type::reference derived_reference_type;</span>
|
|
<a name="l00211"></a>00211 <span class="comment"> // Indexed element</span>
|
|
<a name="l00212"></a>00212 <span class="comment"> BOOST_UBLAS_INLINE</span>
|
|
<a name="l00213"></a>00213 <span class="comment"> derived_reference_type operator [] (derived_difference_type n) {</span>
|
|
<a name="l00214"></a>00214 <span class="comment"> return *(*this + n);</span>
|
|
<a name="l00215"></a>00215 <span class="comment"> }</span>
|
|
<a name="l00216"></a>00216 <span class="comment"> */</span>
|
|
<a name="l00217"></a>00217
|
|
<a name="l00218"></a>00218 <span class="comment">// Arithmetic</span>
|
|
<a name="l00219"></a>00219 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00220"></a><a class="code" href="a00365.html#a18d4913e691597eebd340dfc8bfbe5fe">00220</a> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a18d4913e691597eebd340dfc8bfbe5fe">operator ++ </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00221"></a>00221 <a class="code" href="a00593.html">derived_iterator_type</a> &d (*static_cast<derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00222"></a>00222 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00223"></a>00223 ++ d;
|
|
<a name="l00224"></a>00224 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00225"></a>00225 }
|
|
<a name="l00226"></a>00226 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00227"></a><a class="code" href="a00365.html#a1c0d3ea5f2d7d3b493f4eae9d081d0f1">00227</a> <span class="keyword">friend</span> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a18d4913e691597eebd340dfc8bfbe5fe">operator ++ </a>(<a class="code" href="a00593.html">derived_iterator_type</a> &d, <span class="keywordtype">int</span>) {
|
|
<a name="l00228"></a>00228 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00229"></a>00229 ++ d;
|
|
<a name="l00230"></a>00230 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00231"></a>00231 }
|
|
<a name="l00232"></a>00232 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00233"></a><a class="code" href="a00365.html#a2bfbf11ba3fe6ea38c8b4f3c8e68dd24">00233</a> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a2bfbf11ba3fe6ea38c8b4f3c8e68dd24">operator -- </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00234"></a>00234 <a class="code" href="a00593.html">derived_iterator_type</a> &d (*static_cast<derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00235"></a>00235 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00236"></a>00236 -- d;
|
|
<a name="l00237"></a>00237 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00238"></a>00238 }
|
|
<a name="l00239"></a>00239 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00240"></a><a class="code" href="a00365.html#a19302b59c0ccd2f7c3b208d4ce400259">00240</a> <span class="keyword">friend</span> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a2bfbf11ba3fe6ea38c8b4f3c8e68dd24">operator -- </a>(<a class="code" href="a00593.html">derived_iterator_type</a> &d, <span class="keywordtype">int</span>) {
|
|
<a name="l00241"></a>00241 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00242"></a>00242 -- d;
|
|
<a name="l00243"></a>00243 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00244"></a>00244 }
|
|
<a name="l00245"></a>00245 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00246"></a><a class="code" href="a00365.html#a922809c8b4c5185040dc98ba52a90d3e">00246</a> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a922809c8b4c5185040dc98ba52a90d3e">operator + </a>(<a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">derived_difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00247"></a>00247 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (*static_cast<const derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00248"></a>00248 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00249"></a>00249 }
|
|
<a name="l00250"></a>00250 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00251"></a><a class="code" href="a00365.html#abb4cfc5387c01f67b9e5bbd080f37442">00251</a> <span class="keyword">friend</span> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a922809c8b4c5185040dc98ba52a90d3e">operator + </a>(<span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &d, <a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">derived_difference_type</a> n) {
|
|
<a name="l00252"></a>00252 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00253"></a>00253 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00254"></a>00254 }
|
|
<a name="l00255"></a>00255 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00256"></a><a class="code" href="a00365.html#a3826889dd869a60a6986c42bb478300e">00256</a> <span class="keyword">friend</span> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#a922809c8b4c5185040dc98ba52a90d3e">operator + </a>(<a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">derived_difference_type</a> n, <span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &d) {
|
|
<a name="l00257"></a>00257 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00258"></a>00258 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00259"></a>00259 }
|
|
<a name="l00260"></a>00260 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00261"></a><a class="code" href="a00365.html#ae06cbd110a0b6739e30b3df0d02bc1c0">00261</a> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#ae06cbd110a0b6739e30b3df0d02bc1c0">operator - </a>(<a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">derived_difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00262"></a>00262 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (*static_cast<const derived_iterator_type *> (<span class="keyword">this</span>));
|
|
<a name="l00263"></a>00263 <span class="keywordflow">return</span> tmp -= n;
|
|
<a name="l00264"></a>00264 }
|
|
<a name="l00265"></a>00265 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00266"></a><a class="code" href="a00365.html#a0ab20b3654dc9412e56bf27849f05c3b">00266</a> <span class="keyword">friend</span> <a class="code" href="a00593.html">derived_iterator_type</a> <a class="code" href="a00365.html#ae06cbd110a0b6739e30b3df0d02bc1c0">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &d, <a class="code" href="a00365.html#a04f7a751d0da8c435dfbcd0bbdbd0f97">derived_difference_type</a> n) {
|
|
<a name="l00267"></a>00267 <a class="code" href="a00593.html">derived_iterator_type</a> tmp (d);
|
|
<a name="l00268"></a>00268 <span class="keywordflow">return</span> tmp -= n;
|
|
<a name="l00269"></a>00269 }
|
|
<a name="l00270"></a>00270
|
|
<a name="l00271"></a>00271 <span class="comment">// Comparison</span>
|
|
<a name="l00272"></a>00272 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00273"></a><a class="code" href="a00365.html#a8fa2000671eb9b2051ff80f552adbf9f">00273</a> <span class="keywordtype">bool</span> <a class="code" href="a00365.html#a8fa2000671eb9b2051ff80f552adbf9f">operator != </a>(<span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00274"></a>00274 <span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> *d = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="a00593.html">derived_iterator_type</a> *<span class="keyword">></span> (<span class="keyword">this</span>);
|
|
<a name="l00275"></a>00275 <span class="keywordflow">return</span> ! (*d == it);
|
|
<a name="l00276"></a>00276 }
|
|
<a name="l00277"></a>00277 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00278"></a><a class="code" href="a00365.html#a978ee0aa8f463d9ae8b12101940cf077">00278</a> <span class="keywordtype">bool</span> <a class="code" href="a00365.html#a978ee0aa8f463d9ae8b12101940cf077">operator <= </a>(<span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00279"></a>00279 <span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> *d = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="a00593.html">derived_iterator_type</a> *<span class="keyword">></span> (<span class="keyword">this</span>);
|
|
<a name="l00280"></a>00280 <span class="keywordflow">return</span> ! (it < *d);
|
|
<a name="l00281"></a>00281 }
|
|
<a name="l00282"></a>00282 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00283"></a><a class="code" href="a00365.html#a6356c027d871d073be4e676a406e889a">00283</a> <span class="keywordtype">bool</span> <a class="code" href="a00365.html#a6356c027d871d073be4e676a406e889a">operator >= </a>(<span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00284"></a>00284 <span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> *d = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="a00593.html">derived_iterator_type</a> *<span class="keyword">></span> (<span class="keyword">this</span>);
|
|
<a name="l00285"></a>00285 <span class="keywordflow">return</span> ! (*d < it);
|
|
<a name="l00286"></a>00286 }
|
|
<a name="l00287"></a>00287 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00288"></a><a class="code" href="a00365.html#af58bfbd26a0226f77c82179679a831cf">00288</a> <span class="keywordtype">bool</span> <a class="code" href="a00365.html#af58bfbd26a0226f77c82179679a831cf">operator > </a>(<span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00289"></a>00289 <span class="keyword">const</span> <a class="code" href="a00593.html">derived_iterator_type</a> *d = <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="a00593.html">derived_iterator_type</a> *<span class="keyword">></span> (<span class="keyword">this</span>);
|
|
<a name="l00290"></a>00290 <span class="keywordflow">return</span> it < *d;
|
|
<a name="l00291"></a>00291 }
|
|
<a name="l00292"></a>00292 };
|
|
<a name="l00293"></a>00293
|
|
<a name="l00307"></a>00307 <span class="comment">// Renamed this class from reverse_iterator to get</span>
|
|
<a name="l00308"></a>00308 <span class="comment">// typedef reverse_iterator<...> reverse_iterator</span>
|
|
<a name="l00309"></a>00309 <span class="comment">// working. Thanks to Gabriel Dos Reis for explaining this.</span>
|
|
<a name="l00310"></a>00310 <span class="keyword">template</span> <<span class="keyword">class</span> I>
|
|
<a name="l00311"></a><a class="code" href="a00366.html">00311</a> <span class="keyword">class </span><a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a>:
|
|
<a name="l00312"></a>00312 <span class="keyword">public</span> std::reverse_iterator<I> {
|
|
<a name="l00313"></a>00313 <span class="keyword">public</span>:
|
|
<a name="l00314"></a><a class="code" href="a00366.html#a9874bb69f5ecf60c45feb171ff299779">00314</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::container_type <a class="code" href="a00366.html#a9874bb69f5ecf60c45feb171ff299779">container_type</a>;
|
|
<a name="l00315"></a><a class="code" href="a00366.html#a7ae9f6a9155695d1c11167ace1623284">00315</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00366.html#a7ae9f6a9155695d1c11167ace1623284">size_type</a>;
|
|
<a name="l00316"></a><a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">00316</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::difference_type <a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a>;
|
|
<a name="l00317"></a><a class="code" href="a00366.html#a2048ec8ce4cc94fd01176c62ad524e60">00317</a> <span class="keyword">typedef</span> I <a class="code" href="a00366.html#a2048ec8ce4cc94fd01176c62ad524e60">iterator_type</a>;
|
|
<a name="l00318"></a>00318
|
|
<a name="l00319"></a>00319 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00320"></a>00320 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00321"></a><a class="code" href="a00366.html#a4f40a5724e7fa4307e4bde0f41d82841">00321</a> <a class="code" href="a00366.html#a4f40a5724e7fa4307e4bde0f41d82841">reverse_iterator_base</a> ():
|
|
<a name="l00322"></a>00322 std::reverse_iterator<<a class="code" href="a00366.html#a2048ec8ce4cc94fd01176c62ad524e60">iterator_type</a>> () {}
|
|
<a name="l00323"></a>00323 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00324"></a><a class="code" href="a00366.html#acff3e4bd40708d2df461e2df3f300286">00324</a> <a class="code" href="a00366.html#a4f40a5724e7fa4307e4bde0f41d82841">reverse_iterator_base</a> (<span class="keyword">const</span> <a class="code" href="a00366.html#a2048ec8ce4cc94fd01176c62ad524e60">iterator_type</a> &it):
|
|
<a name="l00325"></a>00325 std::reverse_iterator<<a class="code" href="a00366.html#a2048ec8ce4cc94fd01176c62ad524e60">iterator_type</a>> (it) {}
|
|
<a name="l00326"></a>00326
|
|
<a name="l00327"></a>00327 <span class="comment">// Arithmetic</span>
|
|
<a name="l00328"></a>00328 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00329"></a><a class="code" href="a00366.html#ab8562f1f5eb8bfd8451010063018556c">00329</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &<a class="code" href="a00366.html#ab8562f1f5eb8bfd8451010063018556c">operator ++ </a>() {
|
|
<a name="l00330"></a>00330 <span class="keywordflow">return</span> *<span class="keyword">this</span> = -- this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00331"></a>00331 }
|
|
<a name="l00332"></a>00332 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00333"></a><a class="code" href="a00366.html#a06e1de7cc26c82b7ca8f6cd0b6152cad">00333</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> <a class="code" href="a00366.html#ab8562f1f5eb8bfd8451010063018556c">operator ++ </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00334"></a>00334 <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> tmp (*<span class="keyword">this</span>);
|
|
<a name="l00335"></a>00335 *<span class="keyword">this</span> = -- this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00336"></a>00336 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00337"></a>00337 }
|
|
<a name="l00338"></a>00338 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00339"></a><a class="code" href="a00366.html#a2bf9e874f64d9dc7ed561cdafd7e593b">00339</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &<a class="code" href="a00366.html#a2bf9e874f64d9dc7ed561cdafd7e593b">operator -- </a>() {
|
|
<a name="l00340"></a>00340 <span class="keywordflow">return</span> *<span class="keyword">this</span> = ++ this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00341"></a>00341 }
|
|
<a name="l00342"></a>00342 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00343"></a><a class="code" href="a00366.html#a8fffca48c9ffdcec335bd811eddfe90e">00343</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> <a class="code" href="a00366.html#a2bf9e874f64d9dc7ed561cdafd7e593b">operator -- </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00344"></a>00344 <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> tmp (*<span class="keyword">this</span>);
|
|
<a name="l00345"></a>00345 *<span class="keyword">this</span> = ++ this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00346"></a>00346 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00347"></a>00347 }
|
|
<a name="l00348"></a>00348 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00349"></a><a class="code" href="a00366.html#ac6c655a261e52f345bcd123c0b06a06b">00349</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &<a class="code" href="a00366.html#ac6c655a261e52f345bcd123c0b06a06b">operator += </a>(<a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a> n) {
|
|
<a name="l00350"></a>00350 <span class="keywordflow">return</span> *<span class="keyword">this</span> = this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () - n;
|
|
<a name="l00351"></a>00351 }
|
|
<a name="l00352"></a>00352 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00353"></a><a class="code" href="a00366.html#aca7644a510679aad5cdede7e39ce413b">00353</a> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &<a class="code" href="a00366.html#aca7644a510679aad5cdede7e39ce413b">operator -= </a>(<a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a> n) {
|
|
<a name="l00354"></a>00354 <span class="keywordflow">return</span> *<span class="keyword">this</span> = this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () + n;
|
|
<a name="l00355"></a>00355 }
|
|
<a name="l00356"></a>00356
|
|
<a name="l00357"></a>00357 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00358"></a><a class="code" href="a00366.html#a17bc38eeb8d45821843a886bc487c6d2">00358</a> <span class="keyword">friend</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> <a class="code" href="a00366.html#a17bc38eeb8d45821843a886bc487c6d2">operator + </a>(<span class="keyword">const</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &it, <a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a> n) {
|
|
<a name="l00359"></a>00359 <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> tmp (it);
|
|
<a name="l00360"></a>00360 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00361"></a>00361 }
|
|
<a name="l00362"></a>00362 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00363"></a><a class="code" href="a00366.html#ae27cac01db1a21f6273abe67539a0894">00363</a> <span class="keyword">friend</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> <a class="code" href="a00366.html#a17bc38eeb8d45821843a886bc487c6d2">operator + </a>(<a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a> n, <span class="keyword">const</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &it) {
|
|
<a name="l00364"></a>00364 <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> tmp (it);
|
|
<a name="l00365"></a>00365 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00366"></a>00366 }
|
|
<a name="l00367"></a>00367 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00368"></a><a class="code" href="a00366.html#a4de20ef81517a0ade6a7426e524bf576">00368</a> <span class="keyword">friend</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> <a class="code" href="a00366.html#a4de20ef81517a0ade6a7426e524bf576">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &it, <a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a> n) {
|
|
<a name="l00369"></a>00369 <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> tmp (it);
|
|
<a name="l00370"></a>00370 <span class="keywordflow">return</span> tmp -= n;
|
|
<a name="l00371"></a>00371 }
|
|
<a name="l00372"></a>00372 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00373"></a><a class="code" href="a00366.html#ab0c075b71936376d655d4bac721df2cc">00373</a> <span class="keyword">friend</span> <a class="code" href="a00366.html#ae02e7fe221063c8418985dcb297f8cd4">difference_type</a> <a class="code" href="a00366.html#a4de20ef81517a0ade6a7426e524bf576">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &it1, <span class="keyword">const</span> <a class="code" href="a00366.html" title="Base class of all reverse iterators. (non-MSVC version)">reverse_iterator_base</a> &it2) {
|
|
<a name="l00374"></a>00374 <span class="keywordflow">return</span> it2.base () - it1.base ();
|
|
<a name="l00375"></a>00375 }
|
|
<a name="l00376"></a>00376
|
|
<a name="l00377"></a>00377 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00378"></a><a class="code" href="a00366.html#a357ac24a5c6b7fa65f0892d2289aee8f">00378</a> <span class="keyword">const</span> <a class="code" href="a00366.html#a9874bb69f5ecf60c45feb171ff299779">container_type</a> &<a class="code" href="a00366.html#a357ac24a5c6b7fa65f0892d2289aee8f">operator () </a>()<span class="keyword"> const </span>{
|
|
<a name="l00379"></a>00379 <span class="keywordflow">return</span> this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () ();
|
|
<a name="l00380"></a>00380 }
|
|
<a name="l00381"></a>00381
|
|
<a name="l00382"></a>00382 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00383"></a><a class="code" href="a00366.html#ae07e5220982301be194c07227aa600f9">00383</a> <a class="code" href="a00366.html#a7ae9f6a9155695d1c11167ace1623284">size_type</a> <a class="code" href="a00366.html#ae07e5220982301be194c07227aa600f9">index</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00384"></a>00384 <a class="code" href="a00366.html#a2048ec8ce4cc94fd01176c62ad524e60">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00385"></a>00385 <span class="keywordflow">return</span> (-- tmp).index ();
|
|
<a name="l00386"></a>00386 }
|
|
<a name="l00387"></a>00387 };
|
|
<a name="l00388"></a>00388
|
|
<a name="l00401"></a>00401 <span class="comment">// Renamed this class from reverse_iterator1 to get</span>
|
|
<a name="l00402"></a>00402 <span class="comment">// typedef reverse_iterator1<...> reverse_iterator1</span>
|
|
<a name="l00403"></a>00403 <span class="comment">// working. Thanks to Gabriel Dos Reis for explaining this.</span>
|
|
<a name="l00404"></a>00404 <span class="keyword">template</span> <<span class="keyword">class</span> I>
|
|
<a name="l00405"></a><a class="code" href="a00367.html">00405</a> <span class="keyword">class </span><a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a>:
|
|
<a name="l00406"></a>00406 <span class="keyword">public</span> std::reverse_iterator<I> {
|
|
<a name="l00407"></a>00407 <span class="keyword">public</span>:
|
|
<a name="l00408"></a><a class="code" href="a00367.html#a3fe305f37f980f8e73455af7fd4afc0d">00408</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::container_type <a class="code" href="a00367.html#a3fe305f37f980f8e73455af7fd4afc0d">container_type</a>;
|
|
<a name="l00409"></a><a class="code" href="a00367.html#a904731b7275a44f59c50f7246c2ae0e7">00409</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00367.html#a904731b7275a44f59c50f7246c2ae0e7">size_type</a>;
|
|
<a name="l00410"></a><a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">00410</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::difference_type <a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a>;
|
|
<a name="l00411"></a><a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">00411</a> <span class="keyword">typedef</span> I <a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a>;
|
|
<a name="l00412"></a><a class="code" href="a00367.html#a393d249523d26e57f8b18de1f589576f">00412</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::dual_iterator_type <a class="code" href="a00367.html#a393d249523d26e57f8b18de1f589576f">dual_iterator_type</a>;
|
|
<a name="l00413"></a><a class="code" href="a00367.html#a4b127764b76e5e6397ebbf31d08c5188">00413</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::dual_reverse_iterator_type <a class="code" href="a00367.html#a4b127764b76e5e6397ebbf31d08c5188">dual_reverse_iterator_type</a>;
|
|
<a name="l00414"></a>00414
|
|
<a name="l00415"></a>00415 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00416"></a>00416 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00417"></a><a class="code" href="a00367.html#a4c8cfdb6127203e59a8fb67da0e1fee5">00417</a> <a class="code" href="a00367.html#a4c8cfdb6127203e59a8fb67da0e1fee5">reverse_iterator_base1</a> ():
|
|
<a name="l00418"></a>00418 std::reverse_iterator<<a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a>> () {}
|
|
<a name="l00419"></a>00419 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00420"></a><a class="code" href="a00367.html#a6af5b0b490d213292f448de36e2a908e">00420</a> <a class="code" href="a00367.html#a4c8cfdb6127203e59a8fb67da0e1fee5">reverse_iterator_base1</a> (<span class="keyword">const</span> <a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a> &it):
|
|
<a name="l00421"></a>00421 std::reverse_iterator<<a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a>> (it) {}
|
|
<a name="l00422"></a>00422
|
|
<a name="l00423"></a>00423 <span class="comment">// Arithmetic</span>
|
|
<a name="l00424"></a>00424 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00425"></a><a class="code" href="a00367.html#a13c3ec261439e9d9d151b2bb372d96e0">00425</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &<a class="code" href="a00367.html#a13c3ec261439e9d9d151b2bb372d96e0">operator ++ </a>() {
|
|
<a name="l00426"></a>00426 <span class="keywordflow">return</span> *<span class="keyword">this</span> = -- this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00427"></a>00427 }
|
|
<a name="l00428"></a>00428 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00429"></a><a class="code" href="a00367.html#a02d6037a0c49d748f5c1a656822a5df3">00429</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> <a class="code" href="a00367.html#a13c3ec261439e9d9d151b2bb372d96e0">operator ++ </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00430"></a>00430 <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> tmp (*<span class="keyword">this</span>);
|
|
<a name="l00431"></a>00431 *<span class="keyword">this</span> = -- this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00432"></a>00432 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00433"></a>00433 }
|
|
<a name="l00434"></a>00434 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00435"></a><a class="code" href="a00367.html#ae6709a6679ef2dc55a81e522c0878da7">00435</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &<a class="code" href="a00367.html#ae6709a6679ef2dc55a81e522c0878da7">operator -- </a>() {
|
|
<a name="l00436"></a>00436 <span class="keywordflow">return</span> *<span class="keyword">this</span> = ++ this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00437"></a>00437 }
|
|
<a name="l00438"></a>00438 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00439"></a><a class="code" href="a00367.html#ab3ac72d008ab485883c06462a46bbbba">00439</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> <a class="code" href="a00367.html#ae6709a6679ef2dc55a81e522c0878da7">operator -- </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00440"></a>00440 <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> tmp (*<span class="keyword">this</span>);
|
|
<a name="l00441"></a>00441 *<span class="keyword">this</span> = ++ this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00442"></a>00442 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00443"></a>00443 }
|
|
<a name="l00444"></a>00444 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00445"></a><a class="code" href="a00367.html#a6d80ef3ce54f1cd11c91ef12ded6757a">00445</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &<a class="code" href="a00367.html#a6d80ef3ce54f1cd11c91ef12ded6757a">operator += </a>(<a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a> n) {
|
|
<a name="l00446"></a>00446 <span class="keywordflow">return</span> *<span class="keyword">this</span> = this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () - n;
|
|
<a name="l00447"></a>00447 }
|
|
<a name="l00448"></a>00448 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00449"></a><a class="code" href="a00367.html#a04b553b60001173a215fde52749cbf50">00449</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &<a class="code" href="a00367.html#a04b553b60001173a215fde52749cbf50">operator -= </a>(<a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a> n) {
|
|
<a name="l00450"></a>00450 <span class="keywordflow">return</span> *<span class="keyword">this</span> = this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () + n;
|
|
<a name="l00451"></a>00451 }
|
|
<a name="l00452"></a>00452
|
|
<a name="l00453"></a>00453 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00454"></a><a class="code" href="a00367.html#aac61925196d1abc799ca488b816a1f28">00454</a> <span class="keyword">friend</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> <a class="code" href="a00367.html#aac61925196d1abc799ca488b816a1f28">operator + </a>(<span class="keyword">const</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &it, <a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a> n) {
|
|
<a name="l00455"></a>00455 <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> tmp (it);
|
|
<a name="l00456"></a>00456 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00457"></a>00457 }
|
|
<a name="l00458"></a>00458 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00459"></a><a class="code" href="a00367.html#a7722124e5b6212fcddbd7f48e911c612">00459</a> <span class="keyword">friend</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> <a class="code" href="a00367.html#aac61925196d1abc799ca488b816a1f28">operator + </a>(<a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a> n, <span class="keyword">const</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &it) {
|
|
<a name="l00460"></a>00460 <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> tmp (it);
|
|
<a name="l00461"></a>00461 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00462"></a>00462 }
|
|
<a name="l00463"></a>00463 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00464"></a><a class="code" href="a00367.html#a4931cc47b86fc088a795a2546a68d561">00464</a> <span class="keyword">friend</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> <a class="code" href="a00367.html#a4931cc47b86fc088a795a2546a68d561">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &it, <a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a> n) {
|
|
<a name="l00465"></a>00465 <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> tmp (it);
|
|
<a name="l00466"></a>00466 <span class="keywordflow">return</span> tmp -= n;
|
|
<a name="l00467"></a>00467 }
|
|
<a name="l00468"></a>00468 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00469"></a><a class="code" href="a00367.html#a96aa988f617fc7dc2f3295848eff05ce">00469</a> <span class="keyword">friend</span> <a class="code" href="a00367.html#ae2406ea80819668018be3b13fc026e05">difference_type</a> <a class="code" href="a00367.html#a4931cc47b86fc088a795a2546a68d561">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &it1, <span class="keyword">const</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1</a> &it2) {
|
|
<a name="l00470"></a>00470 <span class="keywordflow">return</span> it2.base () - it1.base ();
|
|
<a name="l00471"></a>00471 }
|
|
<a name="l00472"></a>00472
|
|
<a name="l00473"></a>00473 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00474"></a><a class="code" href="a00367.html#a1737ef5906ae78ea6247f4a357312764">00474</a> <span class="keyword">const</span> <a class="code" href="a00367.html#a3fe305f37f980f8e73455af7fd4afc0d">container_type</a> &<a class="code" href="a00367.html#a1737ef5906ae78ea6247f4a357312764">operator () </a>()<span class="keyword"> const </span>{
|
|
<a name="l00475"></a>00475 <span class="keywordflow">return</span> this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () ();
|
|
<a name="l00476"></a>00476 }
|
|
<a name="l00477"></a>00477
|
|
<a name="l00478"></a>00478 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00479"></a><a class="code" href="a00367.html#a0b34b51987d57487dcc36244dafaa62a">00479</a> <a class="code" href="a00367.html#a904731b7275a44f59c50f7246c2ae0e7">size_type</a> <a class="code" href="a00367.html#a0b34b51987d57487dcc36244dafaa62a">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00480"></a>00480 <a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00481"></a>00481 <span class="keywordflow">return</span> (-- tmp).index1 ();
|
|
<a name="l00482"></a>00482 }
|
|
<a name="l00483"></a>00483 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00484"></a><a class="code" href="a00367.html#a04b34bf63a4e27ad280a718297f27623">00484</a> <a class="code" href="a00367.html#a904731b7275a44f59c50f7246c2ae0e7">size_type</a> <a class="code" href="a00367.html#a04b34bf63a4e27ad280a718297f27623">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00485"></a>00485 <a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00486"></a>00486 <span class="keywordflow">return</span> (-- tmp).index2 ();
|
|
<a name="l00487"></a>00487 }
|
|
<a name="l00488"></a>00488
|
|
<a name="l00489"></a>00489 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00490"></a><a class="code" href="a00367.html#a4edd6fee7b196bad9c7f78e038df20c0">00490</a> <a class="code" href="a00367.html#a393d249523d26e57f8b18de1f589576f">dual_iterator_type</a> <a class="code" href="a00367.html#a4edd6fee7b196bad9c7f78e038df20c0">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00491"></a>00491 <a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00492"></a>00492 <span class="keywordflow">return</span> (-- tmp).begin ();
|
|
<a name="l00493"></a>00493 }
|
|
<a name="l00494"></a>00494 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00495"></a><a class="code" href="a00367.html#a7717026df8e9ba889c523ea3e067a48b">00495</a> <a class="code" href="a00367.html#a393d249523d26e57f8b18de1f589576f">dual_iterator_type</a> <a class="code" href="a00367.html#a7717026df8e9ba889c523ea3e067a48b">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00496"></a>00496 <a class="code" href="a00367.html#a78c60611763e0a77359006294cef7ec2">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00497"></a>00497 <span class="keywordflow">return</span> (-- tmp).end ();
|
|
<a name="l00498"></a>00498 }
|
|
<a name="l00499"></a>00499 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00500"></a><a class="code" href="a00367.html#a265e4dd61a7737c6dce424ece49b460a">00500</a> <a class="code" href="a00367.html#a4b127764b76e5e6397ebbf31d08c5188">dual_reverse_iterator_type</a> <a class="code" href="a00367.html#a265e4dd61a7737c6dce424ece49b460a">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00501"></a>00501 <span class="keywordflow">return</span> <a class="code" href="a00367.html#a4b127764b76e5e6397ebbf31d08c5188">dual_reverse_iterator_type</a> (<a class="code" href="a00367.html#a7717026df8e9ba889c523ea3e067a48b">end</a> ());
|
|
<a name="l00502"></a>00502 }
|
|
<a name="l00503"></a>00503 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00504"></a><a class="code" href="a00367.html#ae126e5216b32e61879f74a63b14e1dc7">00504</a> <a class="code" href="a00367.html#a4b127764b76e5e6397ebbf31d08c5188">dual_reverse_iterator_type</a> <a class="code" href="a00367.html#ae126e5216b32e61879f74a63b14e1dc7">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00505"></a>00505 <span class="keywordflow">return</span> <a class="code" href="a00367.html#a4b127764b76e5e6397ebbf31d08c5188">dual_reverse_iterator_type</a> (<a class="code" href="a00367.html#a4edd6fee7b196bad9c7f78e038df20c0">begin</a> ());
|
|
<a name="l00506"></a>00506 }
|
|
<a name="l00507"></a>00507 };
|
|
<a name="l00508"></a>00508
|
|
<a name="l00523"></a>00523 <span class="comment">// Renamed this class from reverse_iterator2 to get</span>
|
|
<a name="l00524"></a>00524 <span class="comment">// typedef reverse_iterator2<...> reverse_iterator2</span>
|
|
<a name="l00525"></a>00525 <span class="comment">// working. Thanks to Gabriel Dos Reis for explaining this.</span>
|
|
<a name="l00526"></a>00526 <span class="keyword">template</span> <<span class="keyword">class</span> I>
|
|
<a name="l00527"></a><a class="code" href="a00368.html">00527</a> <span class="keyword">class </span><a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a>:
|
|
<a name="l00528"></a>00528 <span class="keyword">public</span> std::reverse_iterator<I> {
|
|
<a name="l00529"></a>00529 <span class="keyword">public</span>:
|
|
<a name="l00530"></a><a class="code" href="a00368.html#aea64b29739aca5f460f8b623ff1414de">00530</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::container_type <a class="code" href="a00368.html#aea64b29739aca5f460f8b623ff1414de">container_type</a>;
|
|
<a name="l00531"></a><a class="code" href="a00368.html#a3eb490a84d3fd32835f6c0764bf8d0ad">00531</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00368.html#a3eb490a84d3fd32835f6c0764bf8d0ad">size_type</a>;
|
|
<a name="l00532"></a><a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">00532</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::difference_type <a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a>;
|
|
<a name="l00533"></a><a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">00533</a> <span class="keyword">typedef</span> I <a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a>;
|
|
<a name="l00534"></a><a class="code" href="a00368.html#ae39d23dbeef2199bf4678fc22b3bcfd2">00534</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::dual_iterator_type <a class="code" href="a00368.html#ae39d23dbeef2199bf4678fc22b3bcfd2">dual_iterator_type</a>;
|
|
<a name="l00535"></a><a class="code" href="a00368.html#adcd9eb978935b7f160fc08bb7e506a17">00535</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> I::dual_reverse_iterator_type <a class="code" href="a00368.html#adcd9eb978935b7f160fc08bb7e506a17">dual_reverse_iterator_type</a>;
|
|
<a name="l00536"></a>00536
|
|
<a name="l00537"></a>00537 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00538"></a>00538 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00539"></a><a class="code" href="a00368.html#a8f20a2b4b034e8b1073b67b3ef87e28f">00539</a> <a class="code" href="a00368.html#a8f20a2b4b034e8b1073b67b3ef87e28f">reverse_iterator_base2</a> ():
|
|
<a name="l00540"></a>00540 std::reverse_iterator<<a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a>> () {}
|
|
<a name="l00541"></a>00541 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00542"></a><a class="code" href="a00368.html#a9ecef38b14248ae49aecf106036f7b6c">00542</a> <a class="code" href="a00368.html#a8f20a2b4b034e8b1073b67b3ef87e28f">reverse_iterator_base2</a> (<span class="keyword">const</span> <a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a> &it):
|
|
<a name="l00543"></a>00543 std::reverse_iterator<<a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a>> (it) {}
|
|
<a name="l00544"></a>00544
|
|
<a name="l00545"></a>00545 <span class="comment">// Arithmetic</span>
|
|
<a name="l00546"></a>00546 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00547"></a><a class="code" href="a00368.html#a6b04e95db1eb4554c33b5c6bc3df4592">00547</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &<a class="code" href="a00368.html#a6b04e95db1eb4554c33b5c6bc3df4592">operator ++ </a>() {
|
|
<a name="l00548"></a>00548 <span class="keywordflow">return</span> *<span class="keyword">this</span> = -- this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00549"></a>00549 }
|
|
<a name="l00550"></a>00550 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00551"></a><a class="code" href="a00368.html#ad51e2d7acd198ffe52e0088d097cb024">00551</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> <a class="code" href="a00368.html#a6b04e95db1eb4554c33b5c6bc3df4592">operator ++ </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00552"></a>00552 <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> tmp (*<span class="keyword">this</span>);
|
|
<a name="l00553"></a>00553 *<span class="keyword">this</span> = -- this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00554"></a>00554 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00555"></a>00555 }
|
|
<a name="l00556"></a>00556 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00557"></a><a class="code" href="a00368.html#a3a6151c48c8a0e87946c46b7fb6e49a0">00557</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &<a class="code" href="a00368.html#a3a6151c48c8a0e87946c46b7fb6e49a0">operator -- </a>() {
|
|
<a name="l00558"></a>00558 <span class="keywordflow">return</span> *<span class="keyword">this</span> = ++ this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00559"></a>00559 }
|
|
<a name="l00560"></a>00560 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00561"></a><a class="code" href="a00368.html#a6fb69865372bf47c117ee78f375f1750">00561</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> <a class="code" href="a00368.html#a3a6151c48c8a0e87946c46b7fb6e49a0">operator -- </a>(<span class="keywordtype">int</span>) {
|
|
<a name="l00562"></a>00562 <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> tmp (*<span class="keyword">this</span>);
|
|
<a name="l00563"></a>00563 *<span class="keyword">this</span> = ++ this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ();
|
|
<a name="l00564"></a>00564 <span class="keywordflow">return</span> tmp;
|
|
<a name="l00565"></a>00565 }
|
|
<a name="l00566"></a>00566 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00567"></a><a class="code" href="a00368.html#aea81cbf6e6688b12df0226f46c996cd9">00567</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &<a class="code" href="a00368.html#aea81cbf6e6688b12df0226f46c996cd9">operator += </a>(<a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a> n) {
|
|
<a name="l00568"></a>00568 <span class="keywordflow">return</span> *<span class="keyword">this</span> = this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () - n;
|
|
<a name="l00569"></a>00569 }
|
|
<a name="l00570"></a>00570 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00571"></a><a class="code" href="a00368.html#ad6e3ee4b247d6bf5d1936e342137ad7e">00571</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &<a class="code" href="a00368.html#ad6e3ee4b247d6bf5d1936e342137ad7e">operator -= </a>(<a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a> n) {
|
|
<a name="l00572"></a>00572 <span class="keywordflow">return</span> *<span class="keyword">this</span> = this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () + n;
|
|
<a name="l00573"></a>00573 }
|
|
<a name="l00574"></a>00574
|
|
<a name="l00575"></a>00575 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00576"></a><a class="code" href="a00368.html#adbbbe5649fd6de5cb548f8549da13311">00576</a> <span class="keyword">friend</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> <a class="code" href="a00368.html#adbbbe5649fd6de5cb548f8549da13311">operator + </a>(<span class="keyword">const</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &it, <a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a> n) {
|
|
<a name="l00577"></a>00577 <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> tmp (it);
|
|
<a name="l00578"></a>00578 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00579"></a>00579 }
|
|
<a name="l00580"></a>00580 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00581"></a><a class="code" href="a00368.html#a5adcf556d792572e1f1ab49d10ade76a">00581</a> <span class="keyword">friend</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> <a class="code" href="a00368.html#adbbbe5649fd6de5cb548f8549da13311">operator + </a>(<a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a> n, <span class="keyword">const</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &it) {
|
|
<a name="l00582"></a>00582 <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> tmp (it);
|
|
<a name="l00583"></a>00583 <span class="keywordflow">return</span> tmp += n;
|
|
<a name="l00584"></a>00584 }
|
|
<a name="l00585"></a>00585 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00586"></a><a class="code" href="a00368.html#a80c8348a41a265e13e5ce385fcd21aba">00586</a> <span class="keyword">friend</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> <a class="code" href="a00368.html#a80c8348a41a265e13e5ce385fcd21aba">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &it, <a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a> n) {
|
|
<a name="l00587"></a>00587 <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> tmp (it);
|
|
<a name="l00588"></a>00588 <span class="keywordflow">return</span> tmp -= n;
|
|
<a name="l00589"></a>00589 }
|
|
<a name="l00590"></a>00590 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00591"></a><a class="code" href="a00368.html#a4076396ffd2a6e9d07e740994488feec">00591</a> <span class="keyword">friend</span> <a class="code" href="a00368.html#a9f8a4c3630dba6ce596edc65170c6083">difference_type</a> <a class="code" href="a00368.html#a80c8348a41a265e13e5ce385fcd21aba">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &it1, <span class="keyword">const</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2</a> &it2) {
|
|
<a name="l00592"></a>00592 <span class="keywordflow">return</span> it2.base () - it1.base ();
|
|
<a name="l00593"></a>00593 }
|
|
<a name="l00594"></a>00594
|
|
<a name="l00595"></a>00595 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00596"></a><a class="code" href="a00368.html#a87e66dce66752d90f9989d3d6734a21a">00596</a> <span class="keyword">const</span> <a class="code" href="a00368.html#aea64b29739aca5f460f8b623ff1414de">container_type</a> &<a class="code" href="a00368.html#a87e66dce66752d90f9989d3d6734a21a">operator () </a>()<span class="keyword"> const </span>{
|
|
<a name="l00597"></a>00597 <span class="keywordflow">return</span> this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> () ();
|
|
<a name="l00598"></a>00598 }
|
|
<a name="l00599"></a>00599
|
|
<a name="l00600"></a>00600 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00601"></a><a class="code" href="a00368.html#a6a50f3ef4aff706123347f8a20faa6fe">00601</a> <a class="code" href="a00368.html#a3eb490a84d3fd32835f6c0764bf8d0ad">size_type</a> <a class="code" href="a00368.html#a6a50f3ef4aff706123347f8a20faa6fe">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00602"></a>00602 <a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00603"></a>00603 <span class="keywordflow">return</span> (-- tmp).index1 ();
|
|
<a name="l00604"></a>00604 }
|
|
<a name="l00605"></a>00605 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00606"></a><a class="code" href="a00368.html#a2baf777ccb4c7c13449ce5d8e69dc81f">00606</a> <a class="code" href="a00368.html#a3eb490a84d3fd32835f6c0764bf8d0ad">size_type</a> <a class="code" href="a00368.html#a2baf777ccb4c7c13449ce5d8e69dc81f">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00607"></a>00607 <a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00608"></a>00608 <span class="keywordflow">return</span> (-- tmp).index2 ();
|
|
<a name="l00609"></a>00609 }
|
|
<a name="l00610"></a>00610
|
|
<a name="l00611"></a>00611 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00612"></a><a class="code" href="a00368.html#a88b03060821b49d96c4d5369691fbf80">00612</a> <a class="code" href="a00368.html#ae39d23dbeef2199bf4678fc22b3bcfd2">dual_iterator_type</a> <a class="code" href="a00368.html#a88b03060821b49d96c4d5369691fbf80">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00613"></a>00613 <a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00614"></a>00614 <span class="keywordflow">return</span> (-- tmp).begin ();
|
|
<a name="l00615"></a>00615 }
|
|
<a name="l00616"></a>00616 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00617"></a><a class="code" href="a00368.html#a3d93a81c7bd02309a45e424e0743bf9b">00617</a> <a class="code" href="a00368.html#ae39d23dbeef2199bf4678fc22b3bcfd2">dual_iterator_type</a> <a class="code" href="a00368.html#a3d93a81c7bd02309a45e424e0743bf9b">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00618"></a>00618 <a class="code" href="a00368.html#a72803ae5030be668e0e0b9c4af8d8228">iterator_type</a> tmp (this-><a class="code" href="a00658.html#a526bf040786792be22e40371a3b608a4">base</a> ());
|
|
<a name="l00619"></a>00619 <span class="keywordflow">return</span> (-- tmp).end ();
|
|
<a name="l00620"></a>00620 }
|
|
<a name="l00621"></a>00621 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00622"></a><a class="code" href="a00368.html#aa075167a46f4d0f766841fbfdaa687f6">00622</a> <a class="code" href="a00368.html#adcd9eb978935b7f160fc08bb7e506a17">dual_reverse_iterator_type</a> <a class="code" href="a00368.html#aa075167a46f4d0f766841fbfdaa687f6">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00623"></a>00623 <span class="keywordflow">return</span> <a class="code" href="a00368.html#adcd9eb978935b7f160fc08bb7e506a17">dual_reverse_iterator_type</a> (<a class="code" href="a00368.html#a3d93a81c7bd02309a45e424e0743bf9b">end</a> ());
|
|
<a name="l00624"></a>00624 }
|
|
<a name="l00625"></a>00625 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00626"></a><a class="code" href="a00368.html#a278bb8c61d31629616054e298b3fc9cd">00626</a> <a class="code" href="a00368.html#adcd9eb978935b7f160fc08bb7e506a17">dual_reverse_iterator_type</a> <a class="code" href="a00368.html#a278bb8c61d31629616054e298b3fc9cd">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00627"></a>00627 <span class="keywordflow">return</span> <a class="code" href="a00368.html#adcd9eb978935b7f160fc08bb7e506a17">dual_reverse_iterator_type</a> (<a class="code" href="a00368.html#a88b03060821b49d96c4d5369691fbf80">begin</a> ());
|
|
<a name="l00628"></a>00628 }
|
|
<a name="l00629"></a>00629 };
|
|
<a name="l00630"></a>00630
|
|
<a name="l00643"></a>00643 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l00644"></a><a class="code" href="a00168.html">00644</a> <span class="keyword">class </span><a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a>:
|
|
<a name="l00645"></a>00645 <span class="keyword">public</span> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><C>,
|
|
<a name="l00646"></a>00646 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><IC,
|
|
<a name="l00647"></a>00647 indexed_iterator<C, IC>,
|
|
<a name="l00648"></a>00648 typename C::value_type,
|
|
<a name="l00649"></a>00649 typename C::difference_type> {
|
|
<a name="l00650"></a>00650 <span class="keyword">public</span>:
|
|
<a name="l00651"></a><a class="code" href="a00168.html#a19465d8c2cdcc0ac15336ef5f95bc7ee">00651</a> <span class="keyword">typedef</span> C <a class="code" href="a00168.html#a19465d8c2cdcc0ac15336ef5f95bc7ee">container_type</a>;
|
|
<a name="l00652"></a><a class="code" href="a00168.html#a31af9010d227cadcb6bc4f5d36143773">00652</a> <span class="keyword">typedef</span> IC <a class="code" href="a00168.html#a31af9010d227cadcb6bc4f5d36143773">iterator_category</a>;
|
|
<a name="l00653"></a><a class="code" href="a00168.html#ae5a9ce25753f9a3aa35db883454233e8">00653</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00168.html#ae5a9ce25753f9a3aa35db883454233e8">size_type</a>;
|
|
<a name="l00654"></a><a class="code" href="a00168.html#acb52c238534d15d87c0a6e955fe3878d">00654</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::difference_type <a class="code" href="a00168.html#acb52c238534d15d87c0a6e955fe3878d">difference_type</a>;
|
|
<a name="l00655"></a><a class="code" href="a00168.html#aa636a44d765054e276993d30507303c2">00655</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::value_type <a class="code" href="a00168.html#aa636a44d765054e276993d30507303c2">value_type</a>;
|
|
<a name="l00656"></a><a class="code" href="a00168.html#a7b5bfa48c9cdadc8e1d98d9ed2493e3b">00656</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::reference <a class="code" href="a00168.html#a7b5bfa48c9cdadc8e1d98d9ed2493e3b">reference</a>;
|
|
<a name="l00657"></a>00657
|
|
<a name="l00658"></a>00658 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00659"></a>00659 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00660"></a><a class="code" href="a00168.html#aae6b50b6085d6423429f42d6d764bdc1">00660</a> <a class="code" href="a00168.html#aae6b50b6085d6423429f42d6d764bdc1">indexed_iterator</a> ():
|
|
<a name="l00661"></a>00661 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>> (), <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> () {}
|
|
<a name="l00662"></a>00662 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00663"></a><a class="code" href="a00168.html#a76a30360f129bf8a79332a0d476b6c89">00663</a> <a class="code" href="a00168.html#aae6b50b6085d6423429f42d6d764bdc1">indexed_iterator</a> (<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a> &c, <a class="code" href="a00168.html#ae5a9ce25753f9a3aa35db883454233e8">size_type</a> it):
|
|
<a name="l00664"></a>00664 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>> (c), <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> (it) {}
|
|
<a name="l00665"></a>00665
|
|
<a name="l00666"></a>00666 <span class="comment">// Arithmetic</span>
|
|
<a name="l00667"></a>00667 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00668"></a><a class="code" href="a00168.html#ae1a837f0d3795a93147db2628ccecaa5">00668</a> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &<a class="code" href="a00168.html#ae1a837f0d3795a93147db2628ccecaa5">operator ++ </a>() {
|
|
<a name="l00669"></a>00669 ++ <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00670"></a>00670 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00671"></a>00671 }
|
|
<a name="l00672"></a>00672 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00673"></a><a class="code" href="a00168.html#aa6a627df1e1dd4ff306416a9e1ae109b">00673</a> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &<a class="code" href="a00168.html#aa6a627df1e1dd4ff306416a9e1ae109b">operator -- </a>() {
|
|
<a name="l00674"></a>00674 -- <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00675"></a>00675 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00676"></a>00676 }
|
|
<a name="l00677"></a>00677 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00678"></a><a class="code" href="a00168.html#abe719a7498777b574d95e6ea195ad695">00678</a> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &<a class="code" href="a00168.html#abe719a7498777b574d95e6ea195ad695">operator += </a>(<a class="code" href="a00168.html#acb52c238534d15d87c0a6e955fe3878d">difference_type</a> n) {
|
|
<a name="l00679"></a>00679 <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> += n;
|
|
<a name="l00680"></a>00680 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00681"></a>00681 }
|
|
<a name="l00682"></a>00682 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00683"></a><a class="code" href="a00168.html#abdaed772abd1b036ff9fd077a58bb502">00683</a> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &<a class="code" href="a00168.html#abdaed772abd1b036ff9fd077a58bb502">operator -= </a>(<a class="code" href="a00168.html#acb52c238534d15d87c0a6e955fe3878d">difference_type</a> n) {
|
|
<a name="l00684"></a>00684 <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> -= n;
|
|
<a name="l00685"></a>00685 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00686"></a>00686 }
|
|
<a name="l00687"></a>00687 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00688"></a><a class="code" href="a00168.html#aec12237be384ff80e4485e1cdfd652ff">00688</a> <a class="code" href="a00168.html#acb52c238534d15d87c0a6e955fe3878d">difference_type</a> <a class="code" href="a00168.html#aec12237be384ff80e4485e1cdfd652ff">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00689"></a>00689 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00690"></a>00690 <span class="keywordflow">return</span> <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> - it.<a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00691"></a>00691 }
|
|
<a name="l00692"></a>00692
|
|
<a name="l00693"></a>00693 <span class="comment">// Dereference</span>
|
|
<a name="l00694"></a>00694 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00695"></a><a class="code" href="a00168.html#a1879dbeddf8b183947c123f25b615a0e">00695</a> <a class="code" href="a00168.html#a7b5bfa48c9cdadc8e1d98d9ed2493e3b">reference</a> <a class="code" href="a00168.html#a1879dbeddf8b183947c123f25b615a0e">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00696"></a>00696 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00168.html#a3eb0ee035ebd0aa6a7c726b503cdd3ac">index</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00697"></a>00697 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>);
|
|
<a name="l00698"></a>00698 }
|
|
<a name="l00699"></a>00699 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00700"></a><a class="code" href="a00168.html#a35c04a674732761a38da1da8c9f56ad2">00700</a> <a class="code" href="a00168.html#a7b5bfa48c9cdadc8e1d98d9ed2493e3b">reference</a> <a class="code" href="a00168.html#a35c04a674732761a38da1da8c9f56ad2">operator [] </a>(<a class="code" href="a00168.html#acb52c238534d15d87c0a6e955fe3878d">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00701"></a>00701 <span class="keywordflow">return</span> *((*this) + n);
|
|
<a name="l00702"></a>00702 }
|
|
<a name="l00703"></a>00703
|
|
<a name="l00704"></a>00704 <span class="comment">// Index</span>
|
|
<a name="l00705"></a>00705 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00706"></a><a class="code" href="a00168.html#a3eb0ee035ebd0aa6a7c726b503cdd3ac">00706</a> <a class="code" href="a00168.html#ae5a9ce25753f9a3aa35db883454233e8">size_type</a> <a class="code" href="a00168.html#a3eb0ee035ebd0aa6a7c726b503cdd3ac">index</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00707"></a>00707 <span class="keywordflow">return</span> <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00708"></a>00708 }
|
|
<a name="l00709"></a>00709
|
|
<a name="l00710"></a>00710 <span class="comment">// Assignment</span>
|
|
<a name="l00711"></a>00711 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00712"></a><a class="code" href="a00168.html#a26df5ea484e167a7404b5a22cfe77828">00712</a> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &<a class="code" href="a00168.html#a26df5ea484e167a7404b5a22cfe77828">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &it) {
|
|
<a name="l00713"></a>00713 <span class="comment">// FIX: ICC needs full qualification?!</span>
|
|
<a name="l00714"></a>00714 <span class="comment">// assign (&it ());</span>
|
|
<a name="l00715"></a>00715 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<C>::assign</a> (&it ());
|
|
<a name="l00716"></a>00716 <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> = it.<a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00717"></a>00717 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00718"></a>00718 }
|
|
<a name="l00719"></a>00719
|
|
<a name="l00720"></a>00720 <span class="comment">// Comparison</span>
|
|
<a name="l00721"></a>00721 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00722"></a><a class="code" href="a00168.html#a9dd799435bd8dd98bc1c432f709c6fdf">00722</a> <span class="keywordtype">bool</span> <a class="code" href="a00168.html#a9dd799435bd8dd98bc1c432f709c6fdf">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00723"></a>00723 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00724"></a>00724 <span class="keywordflow">return</span> <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> == it.<a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00725"></a>00725 }
|
|
<a name="l00726"></a>00726 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00727"></a><a class="code" href="a00168.html#a3a68ac72d4838c192f50aadc661e3323">00727</a> <span class="keywordtype">bool</span> <a class="code" href="a00168.html#a3a68ac72d4838c192f50aadc661e3323">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00728"></a>00728 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00729"></a>00729 <span class="keywordflow">return</span> <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a> < it.<a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00730"></a>00730 }
|
|
<a name="l00731"></a>00731
|
|
<a name="l00732"></a>00732 <span class="keyword">private</span>:
|
|
<a name="l00733"></a><a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">00733</a> <a class="code" href="a00168.html#ae5a9ce25753f9a3aa35db883454233e8">size_type</a> <a class="code" href="a00168.html#abce28d5fdd89aeb7fb87f588daf740d1">it_</a>;
|
|
<a name="l00734"></a>00734 };
|
|
<a name="l00735"></a>00735
|
|
<a name="l00751"></a>00751 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l00752"></a><a class="code" href="a00165.html">00752</a> <span class="keyword">class </span><a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a>:
|
|
<a name="l00753"></a>00753 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><C>,
|
|
<a name="l00754"></a>00754 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><IC,
|
|
<a name="l00755"></a>00755 indexed_const_iterator<C, IC>,
|
|
<a name="l00756"></a>00756 typename C::value_type,
|
|
<a name="l00757"></a>00757 typename C::difference_type> {
|
|
<a name="l00758"></a>00758 <span class="keyword">public</span>:
|
|
<a name="l00759"></a><a class="code" href="a00165.html#abecb4b9f2b8145b04084c27fcc1d0b06">00759</a> <span class="keyword">typedef</span> C <a class="code" href="a00165.html#abecb4b9f2b8145b04084c27fcc1d0b06">container_type</a>;
|
|
<a name="l00760"></a><a class="code" href="a00165.html#a556590446625cd673883d12c03340269">00760</a> <span class="keyword">typedef</span> IC <a class="code" href="a00165.html#a556590446625cd673883d12c03340269">iterator_category</a>;
|
|
<a name="l00761"></a><a class="code" href="a00165.html#a6abd6e74e878b078533b406a6aca7fa8">00761</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00165.html#a6abd6e74e878b078533b406a6aca7fa8">size_type</a>;
|
|
<a name="l00762"></a><a class="code" href="a00165.html#af65bde8f4cde13d922a4c075f56f2bda">00762</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::difference_type <a class="code" href="a00165.html#af65bde8f4cde13d922a4c075f56f2bda">difference_type</a>;
|
|
<a name="l00763"></a><a class="code" href="a00165.html#a52b496a3378a599c842c2a3ac0672b29">00763</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::value_type <a class="code" href="a00165.html#a52b496a3378a599c842c2a3ac0672b29">value_type</a>;
|
|
<a name="l00764"></a><a class="code" href="a00165.html#a26e8753728e3296427ec1e97fb4cad5c">00764</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::const_reference <a class="code" href="a00165.html#a26e8753728e3296427ec1e97fb4cad5c">reference</a>;
|
|
<a name="l00765"></a><a class="code" href="a00165.html#a6da15c97e241b6751aeb1bf90b1b4116">00765</a> <span class="keyword">typedef</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator<container_type, iterator_category></a> <a class="code" href="a00165.html#a6da15c97e241b6751aeb1bf90b1b4116">iterator_type</a>;
|
|
<a name="l00766"></a>00766
|
|
<a name="l00767"></a>00767 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00768"></a>00768 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00769"></a><a class="code" href="a00165.html#ac43170513490bd1d9b60cc560bcf7502">00769</a> <a class="code" href="a00165.html#ac43170513490bd1d9b60cc560bcf7502">indexed_const_iterator</a> ():
|
|
<a name="l00770"></a>00770 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (), <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> () {}
|
|
<a name="l00771"></a>00771 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00772"></a><a class="code" href="a00165.html#a2e52063db119950fc6863710999d5eb6">00772</a> <a class="code" href="a00165.html#ac43170513490bd1d9b60cc560bcf7502">indexed_const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a> &c, <a class="code" href="a00165.html#a6abd6e74e878b078533b406a6aca7fa8">size_type</a> it):
|
|
<a name="l00773"></a>00773 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (c), <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> (it) {}
|
|
<a name="l00774"></a>00774 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00775"></a><a class="code" href="a00165.html#afc349fce17ba6e72eb93d6ce4cbf19ab">00775</a> <a class="code" href="a00165.html#ac43170513490bd1d9b60cc560bcf7502">indexed_const_iterator</a> (<span class="keyword">const</span> <a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">iterator_type</a> &it):
|
|
<a name="l00776"></a>00776 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (it ()), <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> (it.<a class="code" href="a00165.html#a1a9557282816a637e8260ffaa4179c59">index</a> ()) {}
|
|
<a name="l00777"></a>00777
|
|
<a name="l00778"></a>00778 <span class="comment">// Arithmetic</span>
|
|
<a name="l00779"></a>00779 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00780"></a><a class="code" href="a00165.html#a69cb2c14592e2451294e2931f1424a7c">00780</a> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &<a class="code" href="a00165.html#a69cb2c14592e2451294e2931f1424a7c">operator ++ </a>() {
|
|
<a name="l00781"></a>00781 ++ <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00782"></a>00782 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00783"></a>00783 }
|
|
<a name="l00784"></a>00784 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00785"></a><a class="code" href="a00165.html#a4fd99427e1758ad818ecc140f880be24">00785</a> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &<a class="code" href="a00165.html#a4fd99427e1758ad818ecc140f880be24">operator -- </a>() {
|
|
<a name="l00786"></a>00786 -- <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00787"></a>00787 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00788"></a>00788 }
|
|
<a name="l00789"></a>00789 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00790"></a><a class="code" href="a00165.html#a6764d6262515a426807efb5ee8897fc7">00790</a> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &<a class="code" href="a00165.html#a6764d6262515a426807efb5ee8897fc7">operator += </a>(<a class="code" href="a00165.html#af65bde8f4cde13d922a4c075f56f2bda">difference_type</a> n) {
|
|
<a name="l00791"></a>00791 <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> += n;
|
|
<a name="l00792"></a>00792 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00793"></a>00793 }
|
|
<a name="l00794"></a>00794 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00795"></a><a class="code" href="a00165.html#a40caee864757a306e781fb10449f11a0">00795</a> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &<a class="code" href="a00165.html#a40caee864757a306e781fb10449f11a0">operator -= </a>(<a class="code" href="a00165.html#af65bde8f4cde13d922a4c075f56f2bda">difference_type</a> n) {
|
|
<a name="l00796"></a>00796 <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> -= n;
|
|
<a name="l00797"></a>00797 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00798"></a>00798 }
|
|
<a name="l00799"></a>00799 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00800"></a><a class="code" href="a00165.html#acbe9691dd0247a9fde8971a986fc0180">00800</a> <a class="code" href="a00165.html#af65bde8f4cde13d922a4c075f56f2bda">difference_type</a> <a class="code" href="a00165.html#acbe9691dd0247a9fde8971a986fc0180">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00801"></a>00801 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00802"></a>00802 <span class="keywordflow">return</span> <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> - it.<a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00803"></a>00803 }
|
|
<a name="l00804"></a>00804
|
|
<a name="l00805"></a>00805 <span class="comment">// Dereference</span>
|
|
<a name="l00806"></a>00806 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00807"></a><a class="code" href="a00165.html#a0b5a55f61012ac167d3b272645f0a6d2">00807</a> <a class="code" href="a00165.html#a26e8753728e3296427ec1e97fb4cad5c">reference</a> <a class="code" href="a00165.html#a0b5a55f61012ac167d3b272645f0a6d2">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00808"></a>00808 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00165.html#a1a9557282816a637e8260ffaa4179c59">index</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00595.html#a21019ef1d90c1854094dffa247fe1daf" title="Return the number of columns.">size</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00809"></a>00809 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>);
|
|
<a name="l00810"></a>00810 }
|
|
<a name="l00811"></a>00811 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00812"></a><a class="code" href="a00165.html#af84031be885ac33eff6998d9567ded98">00812</a> <a class="code" href="a00165.html#a26e8753728e3296427ec1e97fb4cad5c">reference</a> <a class="code" href="a00165.html#af84031be885ac33eff6998d9567ded98">operator [] </a>(<a class="code" href="a00165.html#af65bde8f4cde13d922a4c075f56f2bda">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00813"></a>00813 <span class="keywordflow">return</span> *((*this) + n);
|
|
<a name="l00814"></a>00814 }
|
|
<a name="l00815"></a>00815
|
|
<a name="l00816"></a>00816 <span class="comment">// Index</span>
|
|
<a name="l00817"></a>00817 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00818"></a><a class="code" href="a00165.html#a1a9557282816a637e8260ffaa4179c59">00818</a> <a class="code" href="a00165.html#a6abd6e74e878b078533b406a6aca7fa8">size_type</a> <a class="code" href="a00165.html#a1a9557282816a637e8260ffaa4179c59">index</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00819"></a>00819 <span class="keywordflow">return</span> <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00820"></a>00820 }
|
|
<a name="l00821"></a>00821
|
|
<a name="l00822"></a>00822 <span class="comment">// Assignment</span>
|
|
<a name="l00823"></a>00823 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00824"></a><a class="code" href="a00165.html#acf8d8418a1cd707f54cf7df32d03d6d0">00824</a> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &<a class="code" href="a00165.html#acf8d8418a1cd707f54cf7df32d03d6d0">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &it) {
|
|
<a name="l00825"></a>00825 <span class="comment">// FIX: ICC needs full qualification?!</span>
|
|
<a name="l00826"></a>00826 <span class="comment">// assign (&it ());</span>
|
|
<a name="l00827"></a>00827 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<C>::assign</a> (&it ());
|
|
<a name="l00828"></a>00828 <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> = it.<a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00829"></a>00829 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00830"></a>00830 }
|
|
<a name="l00831"></a>00831
|
|
<a name="l00832"></a>00832 <span class="comment">// Comparison</span>
|
|
<a name="l00833"></a>00833 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00834"></a><a class="code" href="a00165.html#aadac562a6c9ca058a81e231fa64527dd">00834</a> <span class="keywordtype">bool</span> <a class="code" href="a00165.html#aadac562a6c9ca058a81e231fa64527dd">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00835"></a>00835 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00836"></a>00836 <span class="keywordflow">return</span> <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> == it.<a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00837"></a>00837 }
|
|
<a name="l00838"></a>00838 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00839"></a><a class="code" href="a00165.html#afb31d5a13fafade5f39578187df8813b">00839</a> <span class="keywordtype">bool</span> <a class="code" href="a00165.html#afb31d5a13fafade5f39578187df8813b">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00165.html" title="A class implementing an indexed random access iterator.">indexed_const_iterator</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00840"></a>00840 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00841"></a>00841 <span class="keywordflow">return</span> <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a> < it.<a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00842"></a>00842 }
|
|
<a name="l00843"></a>00843
|
|
<a name="l00844"></a>00844 <span class="keyword">private</span>:
|
|
<a name="l00845"></a><a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">00845</a> <a class="code" href="a00165.html#a6abd6e74e878b078533b406a6aca7fa8">size_type</a> <a class="code" href="a00165.html#aee8db289a22b9655d327bb1c063505fb">it_</a>;
|
|
<a name="l00846"></a>00846
|
|
<a name="l00847"></a><a class="code" href="a00165.html#ac664915610d39407155aef383421c0a2">00847</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00168.html" title="A class implementing an indexed random access iterator.">indexed_iterator</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>, <a class="code" href="a00165.html#a556590446625cd673883d12c03340269">iterator_category</a>>;
|
|
<a name="l00848"></a>00848 };
|
|
<a name="l00849"></a>00849
|
|
<a name="l00850"></a>00850 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l00851"></a>00851 <span class="keyword">class </span><a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a>;
|
|
<a name="l00852"></a>00852
|
|
<a name="l00871"></a>00871 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l00872"></a><a class="code" href="a00169.html">00872</a> <span class="keyword">class </span><a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a>:
|
|
<a name="l00873"></a>00873 <span class="keyword">public</span> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><C>,
|
|
<a name="l00874"></a>00874 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><IC,
|
|
<a name="l00875"></a>00875 indexed_iterator1<C, IC>,
|
|
<a name="l00876"></a>00876 typename C::value_type,
|
|
<a name="l00877"></a>00877 typename C::difference_type> {
|
|
<a name="l00878"></a>00878 <span class="keyword">public</span>:
|
|
<a name="l00879"></a><a class="code" href="a00169.html#a397a177c653575c34f4b0d2f208efd53">00879</a> <span class="keyword">typedef</span> C <a class="code" href="a00169.html#a397a177c653575c34f4b0d2f208efd53">container_type</a>;
|
|
<a name="l00880"></a><a class="code" href="a00169.html#a5e4a3214c2da07ed7852f61db86454f1">00880</a> <span class="keyword">typedef</span> IC <a class="code" href="a00169.html#a5e4a3214c2da07ed7852f61db86454f1">iterator_category</a>;
|
|
<a name="l00881"></a><a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">00881</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a>;
|
|
<a name="l00882"></a><a class="code" href="a00169.html#a3efbeb0ba091ebd2245fd6ed75be75b5">00882</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::difference_type <a class="code" href="a00169.html#a3efbeb0ba091ebd2245fd6ed75be75b5">difference_type</a>;
|
|
<a name="l00883"></a><a class="code" href="a00169.html#a84528736bab09eefe3d68f3a32e34a52">00883</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::value_type <a class="code" href="a00169.html#a84528736bab09eefe3d68f3a32e34a52">value_type</a>;
|
|
<a name="l00884"></a><a class="code" href="a00169.html#a2e55a9fe3065e6e5d546a0357e211425">00884</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::reference <a class="code" href="a00169.html#a2e55a9fe3065e6e5d546a0357e211425">reference</a>;
|
|
<a name="l00885"></a>00885
|
|
<a name="l00886"></a><a class="code" href="a00169.html#a2de2059bdd8172c47644906e27240222">00886</a> <span class="keyword">typedef</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2<container_type, iterator_category></a> <a class="code" href="a00169.html#a2de2059bdd8172c47644906e27240222">dual_iterator_type</a>;
|
|
<a name="l00887"></a><a class="code" href="a00169.html#a4d21754f74c4457f66602d9852ca1b42">00887</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2<dual_iterator_type></a> <a class="code" href="a00169.html#a4d21754f74c4457f66602d9852ca1b42">dual_reverse_iterator_type</a>;
|
|
<a name="l00888"></a>00888
|
|
<a name="l00889"></a>00889 <span class="comment">// Construction and destruction</span>
|
|
<a name="l00890"></a>00890 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00891"></a><a class="code" href="a00169.html#a73bba3cd78e775ec952cff8111cd2679">00891</a> <a class="code" href="a00169.html#a73bba3cd78e775ec952cff8111cd2679">indexed_iterator1</a> ():
|
|
<a name="l00892"></a>00892 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>> (), <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> (), <a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a> () {}
|
|
<a name="l00893"></a>00893 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00894"></a><a class="code" href="a00169.html#a9859f9006a71dbda571190fa81da01db">00894</a> <a class="code" href="a00169.html#a73bba3cd78e775ec952cff8111cd2679">indexed_iterator1</a> (<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a> &c, <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a> it1, <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a> it2):
|
|
<a name="l00895"></a>00895 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>> (c), <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> (it1), <a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a> (it2) {}
|
|
<a name="l00896"></a>00896
|
|
<a name="l00897"></a>00897 <span class="comment">// Arithmetic</span>
|
|
<a name="l00898"></a>00898 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00899"></a><a class="code" href="a00169.html#a03807d2b2172a1fd120abd6deb927479">00899</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &<a class="code" href="a00169.html#a03807d2b2172a1fd120abd6deb927479">operator ++ </a>() {
|
|
<a name="l00900"></a>00900 ++ <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00901"></a>00901 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00902"></a>00902 }
|
|
<a name="l00903"></a>00903 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00904"></a><a class="code" href="a00169.html#a731aa27e7fb5908b2f18e48d4118e459">00904</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &<a class="code" href="a00169.html#a731aa27e7fb5908b2f18e48d4118e459">operator -- </a>() {
|
|
<a name="l00905"></a>00905 -- <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00906"></a>00906 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00907"></a>00907 }
|
|
<a name="l00908"></a>00908 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00909"></a><a class="code" href="a00169.html#a901b4ae2e9ac997ac0c566ec443f14a9">00909</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &<a class="code" href="a00169.html#a901b4ae2e9ac997ac0c566ec443f14a9">operator += </a>(<a class="code" href="a00169.html#a3efbeb0ba091ebd2245fd6ed75be75b5">difference_type</a> n) {
|
|
<a name="l00910"></a>00910 <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> += n;
|
|
<a name="l00911"></a>00911 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00912"></a>00912 }
|
|
<a name="l00913"></a>00913 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00914"></a><a class="code" href="a00169.html#a5de609947f8e0799ed893892d6a3e550">00914</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &<a class="code" href="a00169.html#a5de609947f8e0799ed893892d6a3e550">operator -= </a>(<a class="code" href="a00169.html#a3efbeb0ba091ebd2245fd6ed75be75b5">difference_type</a> n) {
|
|
<a name="l00915"></a>00915 <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> -= n;
|
|
<a name="l00916"></a>00916 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00917"></a>00917 }
|
|
<a name="l00918"></a>00918 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00919"></a><a class="code" href="a00169.html#a362ddf4269594e94fe87d580bc2209bf">00919</a> <a class="code" href="a00169.html#a3efbeb0ba091ebd2245fd6ed75be75b5">difference_type</a> <a class="code" href="a00169.html#a362ddf4269594e94fe87d580bc2209bf">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00920"></a>00920 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00921"></a>00921 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a> == it.<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00922"></a>00922 <span class="keywordflow">return</span> <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> - it.<a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00923"></a>00923 }
|
|
<a name="l00924"></a>00924
|
|
<a name="l00925"></a>00925 <span class="comment">// Dereference</span>
|
|
<a name="l00926"></a>00926 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00927"></a><a class="code" href="a00169.html#a140a42d9b2413852a581712f0fbd7063">00927</a> <a class="code" href="a00169.html#a2e55a9fe3065e6e5d546a0357e211425">reference</a> <a class="code" href="a00169.html#a140a42d9b2413852a581712f0fbd7063">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l00928"></a>00928 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00169.html#a30dc3b258b1fda9a478cbc07b916a989">index1</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a979596ba6e2373d596e34c2a73809cf6">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00929"></a>00929 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00169.html#ac140ff485ae14017d9fb52719f7f742b">index2</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a981c2ed31bf42bd03499d4ee32444141">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l00930"></a>00930 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>, <a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>);
|
|
<a name="l00931"></a>00931 }
|
|
<a name="l00932"></a>00932 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00933"></a><a class="code" href="a00169.html#a28bd50d71981cc02eed2893ab3112841">00933</a> <a class="code" href="a00169.html#a2e55a9fe3065e6e5d546a0357e211425">reference</a> <a class="code" href="a00169.html#a28bd50d71981cc02eed2893ab3112841">operator [] </a>(<a class="code" href="a00169.html#a3efbeb0ba091ebd2245fd6ed75be75b5">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l00934"></a>00934 <span class="keywordflow">return</span> *((*this) + n);
|
|
<a name="l00935"></a>00935 }
|
|
<a name="l00936"></a>00936
|
|
<a name="l00937"></a>00937 <span class="comment">// Index</span>
|
|
<a name="l00938"></a>00938 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00939"></a><a class="code" href="a00169.html#a30dc3b258b1fda9a478cbc07b916a989">00939</a> <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a> <a class="code" href="a00169.html#a30dc3b258b1fda9a478cbc07b916a989">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00940"></a>00940 <span class="keywordflow">return</span> <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00941"></a>00941 }
|
|
<a name="l00942"></a>00942 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00943"></a><a class="code" href="a00169.html#ac140ff485ae14017d9fb52719f7f742b">00943</a> <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a> <a class="code" href="a00169.html#ac140ff485ae14017d9fb52719f7f742b">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00944"></a>00944 <span class="keywordflow">return</span> <a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>;
|
|
<a name="l00945"></a>00945 }
|
|
<a name="l00946"></a>00946
|
|
<a name="l00947"></a>00947 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00948"></a><a class="code" href="a00169.html#a3b2022dd1b428792a39b4f433d0aec6a">00948</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00169.html#a3b2022dd1b428792a39b4f433d0aec6a">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00949"></a>00949 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find2 (1, <a class="code" href="a00169.html#a30dc3b258b1fda9a478cbc07b916a989">index1</a> (), 0);
|
|
<a name="l00950"></a>00950 }
|
|
<a name="l00951"></a>00951 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00952"></a><a class="code" href="a00169.html#aaf8bdfff7f9f4f02d1bea1be89e84f67">00952</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00169.html#aaf8bdfff7f9f4f02d1bea1be89e84f67">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00953"></a>00953 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find2 (1, <a class="code" href="a00169.html#a30dc3b258b1fda9a478cbc07b916a989">index1</a> (), (*this) ().<a class="code" href="a00658.html#a981c2ed31bf42bd03499d4ee32444141">size2</a> ());
|
|
<a name="l00954"></a>00954 }
|
|
<a name="l00955"></a>00955 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00956"></a><a class="code" href="a00169.html#a99c3deeb733161d40aea4466b47f6771">00956</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00169.html#a99c3deeb733161d40aea4466b47f6771">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00957"></a>00957 <span class="keywordflow">return</span> <a class="code" href="a00169.html#a4d21754f74c4457f66602d9852ca1b42">dual_reverse_iterator_type</a> (<a class="code" href="a00169.html#aaf8bdfff7f9f4f02d1bea1be89e84f67">end</a> ());
|
|
<a name="l00958"></a>00958 }
|
|
<a name="l00959"></a>00959 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00960"></a><a class="code" href="a00169.html#a8930016351cb48f00d4e7762a28cb071">00960</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00169.html#a8930016351cb48f00d4e7762a28cb071">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l00961"></a>00961 <span class="keywordflow">return</span> <a class="code" href="a00169.html#a4d21754f74c4457f66602d9852ca1b42">dual_reverse_iterator_type</a> (<a class="code" href="a00169.html#a3b2022dd1b428792a39b4f433d0aec6a">begin</a> ());
|
|
<a name="l00962"></a>00962 }
|
|
<a name="l00963"></a>00963
|
|
<a name="l00964"></a>00964 <span class="comment">// Assignment</span>
|
|
<a name="l00965"></a>00965 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00966"></a><a class="code" href="a00169.html#a99deed027e1e1303ec15e84408fa12ad">00966</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &<a class="code" href="a00169.html#a99deed027e1e1303ec15e84408fa12ad">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &it) {
|
|
<a name="l00967"></a>00967 <span class="comment">// FIX: ICC needs full qualification?!</span>
|
|
<a name="l00968"></a>00968 <span class="comment">// assign (&it ());</span>
|
|
<a name="l00969"></a>00969 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<C>::assign</a> (&it ());
|
|
<a name="l00970"></a>00970 <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> = it.<a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00971"></a>00971 <a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a> = it.<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>;
|
|
<a name="l00972"></a>00972 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l00973"></a>00973 }
|
|
<a name="l00974"></a>00974
|
|
<a name="l00975"></a>00975 <span class="comment">// Comparison</span>
|
|
<a name="l00976"></a>00976 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00977"></a><a class="code" href="a00169.html#aca36671d17a3bcfe281eb716531dee42">00977</a> <span class="keywordtype">bool</span> <a class="code" href="a00169.html#aca36671d17a3bcfe281eb716531dee42">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00978"></a>00978 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00979"></a>00979 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a> == it.<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00980"></a>00980 <span class="keywordflow">return</span> <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> == it.<a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00981"></a>00981 }
|
|
<a name="l00982"></a>00982 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l00983"></a><a class="code" href="a00169.html#a47839f44e65b50dce90208317a9200f7">00983</a> <span class="keywordtype">bool</span> <a class="code" href="a00169.html#a47839f44e65b50dce90208317a9200f7">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l00984"></a>00984 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00985"></a>00985 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a> == it.<a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l00986"></a>00986 <span class="keywordflow">return</span> <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a> < it.<a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00987"></a>00987 }
|
|
<a name="l00988"></a>00988
|
|
<a name="l00989"></a>00989 <span class="keyword">private</span>:
|
|
<a name="l00990"></a><a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">00990</a> <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a> <a class="code" href="a00169.html#ac7f1763991175c620930dac3300d031a">it1_</a>;
|
|
<a name="l00991"></a><a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">00991</a> <a class="code" href="a00169.html#aeb813e16bff47531248d8f6f8927282b">size_type</a> <a class="code" href="a00169.html#aa921799912782521f8feea006b9573fb">it2_</a>;
|
|
<a name="l00992"></a>00992 };
|
|
<a name="l00993"></a>00993
|
|
<a name="l00994"></a>00994 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l00995"></a>00995 <span class="keyword">class </span><a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a>;
|
|
<a name="l00996"></a>00996
|
|
<a name="l01017"></a>01017 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l01018"></a><a class="code" href="a00166.html">01018</a> <span class="keyword">class </span><a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a>:
|
|
<a name="l01019"></a>01019 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><C>,
|
|
<a name="l01020"></a>01020 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><IC,
|
|
<a name="l01021"></a>01021 indexed_const_iterator1<C, IC>,
|
|
<a name="l01022"></a>01022 typename C::value_type,
|
|
<a name="l01023"></a>01023 typename C::difference_type> {
|
|
<a name="l01024"></a>01024 <span class="keyword">public</span>:
|
|
<a name="l01025"></a><a class="code" href="a00166.html#a29567d93a61e855f307111184d734208">01025</a> <span class="keyword">typedef</span> C <a class="code" href="a00166.html#a29567d93a61e855f307111184d734208">container_type</a>;
|
|
<a name="l01026"></a><a class="code" href="a00166.html#aea5b11833c9541787abfff23c6b0ed39">01026</a> <span class="keyword">typedef</span> IC <a class="code" href="a00166.html#aea5b11833c9541787abfff23c6b0ed39">iterator_category</a>;
|
|
<a name="l01027"></a><a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">01027</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a>;
|
|
<a name="l01028"></a><a class="code" href="a00166.html#a647e378c0217b55e9624564ad397647a">01028</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::difference_type <a class="code" href="a00166.html#a647e378c0217b55e9624564ad397647a">difference_type</a>;
|
|
<a name="l01029"></a><a class="code" href="a00166.html#a2315c6aea43c1318da980e690065e4c0">01029</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::value_type <a class="code" href="a00166.html#a2315c6aea43c1318da980e690065e4c0">value_type</a>;
|
|
<a name="l01030"></a><a class="code" href="a00166.html#a5b91d85b18c078764166572b8ec4f315">01030</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::const_reference <a class="code" href="a00166.html#a5b91d85b18c078764166572b8ec4f315">reference</a>;
|
|
<a name="l01031"></a>01031
|
|
<a name="l01032"></a><a class="code" href="a00166.html#a13f2bee1d174f454ad327dcb7af0b335">01032</a> <span class="keyword">typedef</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1<container_type, iterator_category></a> <a class="code" href="a00166.html#a13f2bee1d174f454ad327dcb7af0b335">iterator_type</a>;
|
|
<a name="l01033"></a><a class="code" href="a00166.html#a0fa4b0bcd5ad3f48660fae3d954bff7d">01033</a> <span class="keyword">typedef</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2<container_type, iterator_category></a> <a class="code" href="a00166.html#a0fa4b0bcd5ad3f48660fae3d954bff7d">dual_iterator_type</a>;
|
|
<a name="l01034"></a><a class="code" href="a00166.html#aaf7905363c31f0fea501bd7452e9893b">01034</a> <span class="keyword">typedef</span> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base2<dual_iterator_type></a> <a class="code" href="a00166.html#aaf7905363c31f0fea501bd7452e9893b">dual_reverse_iterator_type</a>;
|
|
<a name="l01035"></a>01035
|
|
<a name="l01036"></a>01036 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01037"></a>01037 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01038"></a><a class="code" href="a00166.html#a43df2c689919d7b187857a2e03787731">01038</a> <a class="code" href="a00166.html#a43df2c689919d7b187857a2e03787731">indexed_const_iterator1</a> ():
|
|
<a name="l01039"></a>01039 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (), <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> (), <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> () {}
|
|
<a name="l01040"></a>01040 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01041"></a><a class="code" href="a00166.html#adea1ceb1dfbb64e3ad68893c61daa816">01041</a> <a class="code" href="a00166.html#a43df2c689919d7b187857a2e03787731">indexed_const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a> &c, <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a> it1, <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a> it2):
|
|
<a name="l01042"></a>01042 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (c), <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> (it1), <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> (it2) {}
|
|
<a name="l01043"></a>01043 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01044"></a><a class="code" href="a00166.html#a2c3401aaf474edc68bf6b8292f784388">01044</a> <a class="code" href="a00166.html#a43df2c689919d7b187857a2e03787731">indexed_const_iterator1</a> (<span class="keyword">const</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">iterator_type</a> &it):
|
|
<a name="l01045"></a>01045 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (it ()), <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> (it.<a class="code" href="a00166.html#a653d5443b5d4d1c32bcae8f9dced22f7">index1</a> ()), <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> (it.<a class="code" href="a00166.html#a0959c6a1e4dba849e86edeee563f4ab9">index2</a> ()) {}
|
|
<a name="l01046"></a>01046
|
|
<a name="l01047"></a>01047 <span class="comment">// Arithmetic</span>
|
|
<a name="l01048"></a>01048 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01049"></a><a class="code" href="a00166.html#a2860d0a278886e3530fcd93104454fdf">01049</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &<a class="code" href="a00166.html#a2860d0a278886e3530fcd93104454fdf">operator ++ </a>() {
|
|
<a name="l01050"></a>01050 ++ <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01051"></a>01051 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01052"></a>01052 }
|
|
<a name="l01053"></a>01053 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01054"></a><a class="code" href="a00166.html#a4a609803190ce6cc19e2c4ee9562cae6">01054</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &<a class="code" href="a00166.html#a4a609803190ce6cc19e2c4ee9562cae6">operator -- </a>() {
|
|
<a name="l01055"></a>01055 -- <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01056"></a>01056 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01057"></a>01057 }
|
|
<a name="l01058"></a>01058 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01059"></a><a class="code" href="a00166.html#a385dd711dfe7ffdb87d3758f7903c53e">01059</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &<a class="code" href="a00166.html#a385dd711dfe7ffdb87d3758f7903c53e">operator += </a>(<a class="code" href="a00166.html#a647e378c0217b55e9624564ad397647a">difference_type</a> n) {
|
|
<a name="l01060"></a>01060 <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> += n;
|
|
<a name="l01061"></a>01061 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01062"></a>01062 }
|
|
<a name="l01063"></a>01063 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01064"></a><a class="code" href="a00166.html#afbc2907acacc8c412f0fa7ed211fa259">01064</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &<a class="code" href="a00166.html#afbc2907acacc8c412f0fa7ed211fa259">operator -= </a>(<a class="code" href="a00166.html#a647e378c0217b55e9624564ad397647a">difference_type</a> n) {
|
|
<a name="l01065"></a>01065 <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> -= n;
|
|
<a name="l01066"></a>01066 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01067"></a>01067 }
|
|
<a name="l01068"></a>01068 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01069"></a><a class="code" href="a00166.html#adf034aded056b3f7322556a18f58de0e">01069</a> <a class="code" href="a00166.html#a647e378c0217b55e9624564ad397647a">difference_type</a> <a class="code" href="a00166.html#adf034aded056b3f7322556a18f58de0e">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01070"></a>01070 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01071"></a>01071 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> == it.<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01072"></a>01072 <span class="keywordflow">return</span> <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> - it.<a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01073"></a>01073 }
|
|
<a name="l01074"></a>01074
|
|
<a name="l01075"></a>01075 <span class="comment">// Dereference</span>
|
|
<a name="l01076"></a>01076 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01077"></a><a class="code" href="a00166.html#ab289d606d9b6baa51d1d36cd233e882f">01077</a> <a class="code" href="a00166.html#a5b91d85b18c078764166572b8ec4f315">reference</a> <a class="code" href="a00166.html#ab289d606d9b6baa51d1d36cd233e882f">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01078"></a>01078 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00166.html#a653d5443b5d4d1c32bcae8f9dced22f7">index1</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a979596ba6e2373d596e34c2a73809cf6">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01079"></a>01079 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00166.html#a0959c6a1e4dba849e86edeee563f4ab9">index2</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a981c2ed31bf42bd03499d4ee32444141">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01080"></a>01080 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>, <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>);
|
|
<a name="l01081"></a>01081 }
|
|
<a name="l01082"></a>01082 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01083"></a><a class="code" href="a00166.html#a3678d2d602c3e54cc735f0261e88ef5e">01083</a> <a class="code" href="a00166.html#a5b91d85b18c078764166572b8ec4f315">reference</a> <a class="code" href="a00166.html#a3678d2d602c3e54cc735f0261e88ef5e">operator [] </a>(<a class="code" href="a00166.html#a647e378c0217b55e9624564ad397647a">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01084"></a>01084 <span class="keywordflow">return</span> *((*this) + n);
|
|
<a name="l01085"></a>01085 }
|
|
<a name="l01086"></a>01086
|
|
<a name="l01087"></a>01087 <span class="comment">// Index</span>
|
|
<a name="l01088"></a>01088 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01089"></a><a class="code" href="a00166.html#a653d5443b5d4d1c32bcae8f9dced22f7">01089</a> <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a> <a class="code" href="a00166.html#a653d5443b5d4d1c32bcae8f9dced22f7">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01090"></a>01090 <span class="keywordflow">return</span> <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01091"></a>01091 }
|
|
<a name="l01092"></a>01092 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01093"></a><a class="code" href="a00166.html#a0959c6a1e4dba849e86edeee563f4ab9">01093</a> <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a> <a class="code" href="a00166.html#a0959c6a1e4dba849e86edeee563f4ab9">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01094"></a>01094 <span class="keywordflow">return</span> <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>;
|
|
<a name="l01095"></a>01095 }
|
|
<a name="l01096"></a>01096
|
|
<a name="l01097"></a>01097 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01098"></a><a class="code" href="a00166.html#a2fe54dfc53fb01d29a2e059d8952163d">01098</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00166.html#a2fe54dfc53fb01d29a2e059d8952163d">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01099"></a>01099 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find2 (1, <a class="code" href="a00166.html#a653d5443b5d4d1c32bcae8f9dced22f7">index1</a> (), 0);
|
|
<a name="l01100"></a>01100 }
|
|
<a name="l01101"></a>01101 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01102"></a><a class="code" href="a00166.html#a21dca7444970a5c0f5269b4d89964c0a">01102</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00166.html#a21dca7444970a5c0f5269b4d89964c0a">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01103"></a>01103 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find2 (1, <a class="code" href="a00166.html#a653d5443b5d4d1c32bcae8f9dced22f7">index1</a> (), (*this) ().<a class="code" href="a00658.html#a981c2ed31bf42bd03499d4ee32444141">size2</a> ());
|
|
<a name="l01104"></a>01104 }
|
|
<a name="l01105"></a>01105 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01106"></a><a class="code" href="a00166.html#a4edc8dddf2a63edb56c570a1d560e12b">01106</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00166.html#a4edc8dddf2a63edb56c570a1d560e12b">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01107"></a>01107 <span class="keywordflow">return</span> <a class="code" href="a00166.html#aaf7905363c31f0fea501bd7452e9893b">dual_reverse_iterator_type</a> (<a class="code" href="a00166.html#a21dca7444970a5c0f5269b4d89964c0a">end</a> ());
|
|
<a name="l01108"></a>01108 }
|
|
<a name="l01109"></a>01109 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01110"></a><a class="code" href="a00166.html#a475046bd721cda6a4d19619512bf7f69">01110</a> <a class="code" href="a00368.html" title="2nd base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00166.html#a475046bd721cda6a4d19619512bf7f69">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01111"></a>01111 <span class="keywordflow">return</span> <a class="code" href="a00166.html#aaf7905363c31f0fea501bd7452e9893b">dual_reverse_iterator_type</a> (<a class="code" href="a00166.html#a2fe54dfc53fb01d29a2e059d8952163d">begin</a> ());
|
|
<a name="l01112"></a>01112 }
|
|
<a name="l01113"></a>01113
|
|
<a name="l01114"></a>01114 <span class="comment">// Assignment</span>
|
|
<a name="l01115"></a>01115 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01116"></a><a class="code" href="a00166.html#a81a81eb821eee110aa67faa860f88bd7">01116</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &<a class="code" href="a00166.html#a81a81eb821eee110aa67faa860f88bd7">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &it) {
|
|
<a name="l01117"></a>01117 <span class="comment">// FIX: ICC needs full qualification?!</span>
|
|
<a name="l01118"></a>01118 <span class="comment">// assign (&it ());</span>
|
|
<a name="l01119"></a>01119 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<C>::assign</a> (&it ());
|
|
<a name="l01120"></a>01120 <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> = it.<a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01121"></a>01121 <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> = it.<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>;
|
|
<a name="l01122"></a>01122 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01123"></a>01123 }
|
|
<a name="l01124"></a>01124
|
|
<a name="l01125"></a>01125 <span class="comment">// Comparison</span>
|
|
<a name="l01126"></a>01126 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01127"></a><a class="code" href="a00166.html#a45f8a1eb410ecd43a490b5ce1d362be8">01127</a> <span class="keywordtype">bool</span> <a class="code" href="a00166.html#a45f8a1eb410ecd43a490b5ce1d362be8">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01128"></a>01128 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01129"></a>01129 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> == it.<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01130"></a>01130 <span class="keywordflow">return</span> <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> == it.<a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01131"></a>01131 }
|
|
<a name="l01132"></a>01132 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01133"></a><a class="code" href="a00166.html#af55e1082f7e009e0bf20035399b4680b">01133</a> <span class="keywordtype">bool</span> <a class="code" href="a00166.html#af55e1082f7e009e0bf20035399b4680b">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01134"></a>01134 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01135"></a>01135 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a> == it.<a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01136"></a>01136 <span class="keywordflow">return</span> <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a> < it.<a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01137"></a>01137 }
|
|
<a name="l01138"></a>01138
|
|
<a name="l01139"></a>01139 <span class="keyword">private</span>:
|
|
<a name="l01140"></a><a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">01140</a> <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a> <a class="code" href="a00166.html#a6d3df8b65f999392b38ac38f48886244">it1_</a>;
|
|
<a name="l01141"></a><a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">01141</a> <a class="code" href="a00166.html#a710a40685afbf81e7eb1434d0615fb3c">size_type</a> <a class="code" href="a00166.html#a9391fd6bac9c5e34b8aac2adb93a5121">it2_</a>;
|
|
<a name="l01142"></a>01142
|
|
<a name="l01143"></a><a class="code" href="a00166.html#add4b00ea5b9dc633207a2aa314a29b27">01143</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>, <a class="code" href="a00166.html#aea5b11833c9541787abfff23c6b0ed39">iterator_category</a>>;
|
|
<a name="l01144"></a>01144 };
|
|
<a name="l01145"></a>01145
|
|
<a name="l01162"></a>01162 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l01163"></a><a class="code" href="a00170.html">01163</a> <span class="keyword">class </span><a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a>:
|
|
<a name="l01164"></a>01164 <span class="keyword">public</span> <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><C>,
|
|
<a name="l01165"></a>01165 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><IC,
|
|
<a name="l01166"></a>01166 indexed_iterator2<C, IC>,
|
|
<a name="l01167"></a>01167 typename C::value_type,
|
|
<a name="l01168"></a>01168 typename C::difference_type> {
|
|
<a name="l01169"></a>01169 <span class="keyword">public</span>:
|
|
<a name="l01170"></a><a class="code" href="a00170.html#a6f768c8881f60e9d26b8130cdd4e4ae9">01170</a> <span class="keyword">typedef</span> C <a class="code" href="a00170.html#a6f768c8881f60e9d26b8130cdd4e4ae9">container_type</a>;
|
|
<a name="l01171"></a><a class="code" href="a00170.html#a7c0f982a916e51c210353c05ed285409">01171</a> <span class="keyword">typedef</span> IC <a class="code" href="a00170.html#a7c0f982a916e51c210353c05ed285409">iterator_category</a>;
|
|
<a name="l01172"></a><a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">01172</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a>;
|
|
<a name="l01173"></a><a class="code" href="a00170.html#af6d1db4649bfe77166d25c6b5b9230be">01173</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::difference_type <a class="code" href="a00170.html#af6d1db4649bfe77166d25c6b5b9230be">difference_type</a>;
|
|
<a name="l01174"></a><a class="code" href="a00170.html#a4f6e062cacd8836e9187b31ac0d2f09f">01174</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::value_type <a class="code" href="a00170.html#a4f6e062cacd8836e9187b31ac0d2f09f">value_type</a>;
|
|
<a name="l01175"></a><a class="code" href="a00170.html#a68c5333154bd4d083f314eb9d68459e2">01175</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::reference <a class="code" href="a00170.html#a68c5333154bd4d083f314eb9d68459e2">reference</a>;
|
|
<a name="l01176"></a>01176
|
|
<a name="l01177"></a><a class="code" href="a00170.html#a4d9673ede73c694303ded047800772f8">01177</a> <span class="keyword">typedef</span> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator1<container_type, iterator_category></a> <a class="code" href="a00170.html#a4d9673ede73c694303ded047800772f8">dual_iterator_type</a>;
|
|
<a name="l01178"></a><a class="code" href="a00170.html#a9277f2bfb94ca3d6668e415cbe7e5d2d">01178</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1<dual_iterator_type></a> <a class="code" href="a00170.html#a9277f2bfb94ca3d6668e415cbe7e5d2d">dual_reverse_iterator_type</a>;
|
|
<a name="l01179"></a>01179
|
|
<a name="l01180"></a>01180 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01181"></a>01181 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01182"></a><a class="code" href="a00170.html#a1424e5829de9f6a07051d535e38ddb79">01182</a> <a class="code" href="a00170.html#a1424e5829de9f6a07051d535e38ddb79">indexed_iterator2</a> ():
|
|
<a name="l01183"></a>01183 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>> (), <a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a> (), <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> () {}
|
|
<a name="l01184"></a>01184 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01185"></a><a class="code" href="a00170.html#a1182982c531406f34184a415235f0089">01185</a> <a class="code" href="a00170.html#a1424e5829de9f6a07051d535e38ddb79">indexed_iterator2</a> (<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a> &c, <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a> it1, <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a> it2):
|
|
<a name="l01186"></a>01186 <a class="code" href="a00070.html" title="Base class of all proxy classes that contain a (redirectable) reference to a mutable object...">container_reference</a><<a class="code" href="a00070.html#a60a499f2e27d74017f278aa39ccb568e">container_type</a>> (c), <a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a> (it1), <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> (it2) {}
|
|
<a name="l01187"></a>01187
|
|
<a name="l01188"></a>01188 <span class="comment">// Arithmetic</span>
|
|
<a name="l01189"></a>01189 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01190"></a><a class="code" href="a00170.html#a10786af9d9b66dbd65a66aa53bebaccb">01190</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &<a class="code" href="a00170.html#a10786af9d9b66dbd65a66aa53bebaccb">operator ++ </a>() {
|
|
<a name="l01191"></a>01191 ++ <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01192"></a>01192 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01193"></a>01193 }
|
|
<a name="l01194"></a>01194 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01195"></a><a class="code" href="a00170.html#a389ab5453daf7b86f2609c6d0dc93c6d">01195</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &<a class="code" href="a00170.html#a389ab5453daf7b86f2609c6d0dc93c6d">operator -- </a>() {
|
|
<a name="l01196"></a>01196 -- <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01197"></a>01197 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01198"></a>01198 }
|
|
<a name="l01199"></a>01199 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01200"></a><a class="code" href="a00170.html#a68595d1a6798bc8ac150e5427f5c76af">01200</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &<a class="code" href="a00170.html#a68595d1a6798bc8ac150e5427f5c76af">operator += </a>(<a class="code" href="a00170.html#af6d1db4649bfe77166d25c6b5b9230be">difference_type</a> n) {
|
|
<a name="l01201"></a>01201 <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> += n;
|
|
<a name="l01202"></a>01202 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01203"></a>01203 }
|
|
<a name="l01204"></a>01204 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01205"></a><a class="code" href="a00170.html#a7e41ddfbf791fe2fdd7badf9a1ab5618">01205</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &<a class="code" href="a00170.html#a7e41ddfbf791fe2fdd7badf9a1ab5618">operator -= </a>(<a class="code" href="a00170.html#af6d1db4649bfe77166d25c6b5b9230be">difference_type</a> n) {
|
|
<a name="l01206"></a>01206 <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> -= n;
|
|
<a name="l01207"></a>01207 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01208"></a>01208 }
|
|
<a name="l01209"></a>01209 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01210"></a><a class="code" href="a00170.html#a1113f3a27e194983d155ce6fd8e99d95">01210</a> <a class="code" href="a00170.html#af6d1db4649bfe77166d25c6b5b9230be">difference_type</a> <a class="code" href="a00170.html#a1113f3a27e194983d155ce6fd8e99d95">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01211"></a>01211 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01212"></a>01212 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a> == it.<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01213"></a>01213 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> - it.<a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01214"></a>01214 }
|
|
<a name="l01215"></a>01215
|
|
<a name="l01216"></a>01216 <span class="comment">// Dereference</span>
|
|
<a name="l01217"></a>01217 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01218"></a><a class="code" href="a00170.html#ac30c306ed6a28cd0eaa68eaa4db46992">01218</a> <a class="code" href="a00170.html#a68c5333154bd4d083f314eb9d68459e2">reference</a> <a class="code" href="a00170.html#ac30c306ed6a28cd0eaa68eaa4db46992">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01219"></a>01219 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00170.html#a37b23bed066780d67f3551a5962be76d">index1</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a979596ba6e2373d596e34c2a73809cf6">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01220"></a>01220 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00170.html#a99b875dcb23ea2d2778d5e6f4789ef62">index2</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a981c2ed31bf42bd03499d4ee32444141">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01221"></a>01221 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>, <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>);
|
|
<a name="l01222"></a>01222 }
|
|
<a name="l01223"></a>01223 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01224"></a><a class="code" href="a00170.html#a8524d0ddbce71820fc6c643b94a15c68">01224</a> <a class="code" href="a00170.html#a68c5333154bd4d083f314eb9d68459e2">reference</a> <a class="code" href="a00170.html#a8524d0ddbce71820fc6c643b94a15c68">operator [] </a>(<a class="code" href="a00170.html#af6d1db4649bfe77166d25c6b5b9230be">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01225"></a>01225 <span class="keywordflow">return</span> *((*this) + n);
|
|
<a name="l01226"></a>01226 }
|
|
<a name="l01227"></a>01227
|
|
<a name="l01228"></a>01228 <span class="comment">// Index</span>
|
|
<a name="l01229"></a>01229 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01230"></a><a class="code" href="a00170.html#a37b23bed066780d67f3551a5962be76d">01230</a> <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a> <a class="code" href="a00170.html#a37b23bed066780d67f3551a5962be76d">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01231"></a>01231 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>;
|
|
<a name="l01232"></a>01232 }
|
|
<a name="l01233"></a>01233 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01234"></a><a class="code" href="a00170.html#a99b875dcb23ea2d2778d5e6f4789ef62">01234</a> <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a> <a class="code" href="a00170.html#a99b875dcb23ea2d2778d5e6f4789ef62">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01235"></a>01235 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01236"></a>01236 }
|
|
<a name="l01237"></a>01237
|
|
<a name="l01238"></a>01238 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01239"></a><a class="code" href="a00170.html#a04572cc3d9cc51a539f83173107f604d">01239</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00170.html#a04572cc3d9cc51a539f83173107f604d">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01240"></a>01240 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find1 (1, 0, <a class="code" href="a00170.html#a99b875dcb23ea2d2778d5e6f4789ef62">index2</a> ());
|
|
<a name="l01241"></a>01241 }
|
|
<a name="l01242"></a>01242 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01243"></a><a class="code" href="a00170.html#a50d4162ccc5095f77d5cc66fb9f485f8">01243</a> <a class="code" href="a00169.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00170.html#a50d4162ccc5095f77d5cc66fb9f485f8">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01244"></a>01244 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find1 (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a979596ba6e2373d596e34c2a73809cf6">size1</a> (), <a class="code" href="a00170.html#a99b875dcb23ea2d2778d5e6f4789ef62">index2</a> ());
|
|
<a name="l01245"></a>01245 }
|
|
<a name="l01246"></a>01246 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01247"></a><a class="code" href="a00170.html#a1d43c568b244c8d4434418a5280e0f53">01247</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00170.html#a1d43c568b244c8d4434418a5280e0f53">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01248"></a>01248 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a9277f2bfb94ca3d6668e415cbe7e5d2d">dual_reverse_iterator_type</a> (<a class="code" href="a00170.html#a50d4162ccc5095f77d5cc66fb9f485f8">end</a> ());
|
|
<a name="l01249"></a>01249 }
|
|
<a name="l01250"></a>01250 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01251"></a><a class="code" href="a00170.html#ab1f61820faf9237f57414a630c0d9723">01251</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00170.html#ab1f61820faf9237f57414a630c0d9723">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01252"></a>01252 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a9277f2bfb94ca3d6668e415cbe7e5d2d">dual_reverse_iterator_type</a> (<a class="code" href="a00170.html#a04572cc3d9cc51a539f83173107f604d">begin</a> ());
|
|
<a name="l01253"></a>01253 }
|
|
<a name="l01254"></a>01254
|
|
<a name="l01255"></a>01255 <span class="comment">// Assignment</span>
|
|
<a name="l01256"></a>01256 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01257"></a><a class="code" href="a00170.html#a41e30e422609ab2b8d549ae1f6674e19">01257</a> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &<a class="code" href="a00170.html#a41e30e422609ab2b8d549ae1f6674e19">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &it) {
|
|
<a name="l01258"></a>01258 <span class="comment">// FIX: ICC needs full qualification?!</span>
|
|
<a name="l01259"></a>01259 <span class="comment">// assign (&it ());</span>
|
|
<a name="l01260"></a>01260 <a class="code" href="a00070.html#a8ee5b7e2ac6a45d59e4873df582a02b2">container_reference<C>::assign</a> (&it ());
|
|
<a name="l01261"></a>01261 <a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a> = it.<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>;
|
|
<a name="l01262"></a>01262 <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> = it.<a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01263"></a>01263 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01264"></a>01264 }
|
|
<a name="l01265"></a>01265
|
|
<a name="l01266"></a>01266 <span class="comment">// Comparison</span>
|
|
<a name="l01267"></a>01267 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01268"></a><a class="code" href="a00170.html#ad4ebd02f617ff886db8cb8e7ca4ebe19">01268</a> <span class="keywordtype">bool</span> <a class="code" href="a00170.html#ad4ebd02f617ff886db8cb8e7ca4ebe19">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01269"></a>01269 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01270"></a>01270 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a> == it.<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01271"></a>01271 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> == it.<a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01272"></a>01272 }
|
|
<a name="l01273"></a>01273 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01274"></a><a class="code" href="a00170.html#a38ae65f4b8ba98b8fd6b1a5bb8e737cd">01274</a> <span class="keywordtype">bool</span> <a class="code" href="a00170.html#a38ae65f4b8ba98b8fd6b1a5bb8e737cd">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01275"></a>01275 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01276"></a>01276 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a> == it.<a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01277"></a>01277 <span class="keywordflow">return</span> <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a> < it.<a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01278"></a>01278 }
|
|
<a name="l01279"></a>01279
|
|
<a name="l01280"></a>01280 <span class="keyword">private</span>:
|
|
<a name="l01281"></a><a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">01281</a> <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a> <a class="code" href="a00170.html#a07522bbb4afa77d77a7c90073dc8cb92">it1_</a>;
|
|
<a name="l01282"></a><a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">01282</a> <a class="code" href="a00170.html#a1061805d9e985d0424c95cf642afd47e">size_type</a> <a class="code" href="a00170.html#a2d89806da6ff48c17977c773100314dc">it2_</a>;
|
|
<a name="l01283"></a>01283 };
|
|
<a name="l01284"></a>01284
|
|
<a name="l01305"></a>01305 <span class="keyword">template</span><<span class="keyword">class</span> C, <span class="keyword">class</span> IC>
|
|
<a name="l01306"></a><a class="code" href="a00167.html">01306</a> <span class="keyword">class </span><a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a>:
|
|
<a name="l01307"></a>01307 <span class="keyword">public</span> <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><C>,
|
|
<a name="l01308"></a>01308 <span class="keyword">public</span> <a class="code" href="a00365.html" title="Base class of all random access iterators.">random_access_iterator_base</a><IC,
|
|
<a name="l01309"></a>01309 indexed_const_iterator2<C, IC>,
|
|
<a name="l01310"></a>01310 typename C::value_type,
|
|
<a name="l01311"></a>01311 typename C::difference_type> {
|
|
<a name="l01312"></a>01312 <span class="keyword">public</span>:
|
|
<a name="l01313"></a><a class="code" href="a00167.html#aeecc82cdb621fce08c25ea42b5f37444">01313</a> <span class="keyword">typedef</span> C <a class="code" href="a00167.html#aeecc82cdb621fce08c25ea42b5f37444">container_type</a>;
|
|
<a name="l01314"></a><a class="code" href="a00167.html#a6a032dec298c27a6102c59128eb59c46">01314</a> <span class="keyword">typedef</span> IC <a class="code" href="a00167.html#a6a032dec298c27a6102c59128eb59c46">iterator_category</a>;
|
|
<a name="l01315"></a><a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">01315</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::size_type <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a>;
|
|
<a name="l01316"></a><a class="code" href="a00167.html#af9d10eeb260c14af6e8f00c30dc75141">01316</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::difference_type <a class="code" href="a00167.html#af9d10eeb260c14af6e8f00c30dc75141">difference_type</a>;
|
|
<a name="l01317"></a><a class="code" href="a00167.html#af0e761d435c315d5b620c3ae22abde0b">01317</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::value_type <a class="code" href="a00167.html#af0e761d435c315d5b620c3ae22abde0b">value_type</a>;
|
|
<a name="l01318"></a><a class="code" href="a00167.html#a20a4ab00644738f314ff44bdb31fda35">01318</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> container_type::const_reference <a class="code" href="a00167.html#a20a4ab00644738f314ff44bdb31fda35">reference</a>;
|
|
<a name="l01319"></a>01319
|
|
<a name="l01320"></a><a class="code" href="a00167.html#a6317467e98ff4e3929bb12a26246011e">01320</a> <span class="keyword">typedef</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2<container_type, iterator_category></a> <a class="code" href="a00167.html#a6317467e98ff4e3929bb12a26246011e">iterator_type</a>;
|
|
<a name="l01321"></a><a class="code" href="a00167.html#ae3243988b9db2a24e51794343b2cbe26">01321</a> <span class="keyword">typedef</span> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator1<container_type, iterator_category></a> <a class="code" href="a00167.html#ae3243988b9db2a24e51794343b2cbe26">dual_iterator_type</a>;
|
|
<a name="l01322"></a><a class="code" href="a00167.html#a35cb5ef4e4ebc43d620390f43f131c90">01322</a> <span class="keyword">typedef</span> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">reverse_iterator_base1<dual_iterator_type></a> <a class="code" href="a00167.html#a35cb5ef4e4ebc43d620390f43f131c90">dual_reverse_iterator_type</a>;
|
|
<a name="l01323"></a>01323
|
|
<a name="l01324"></a>01324 <span class="comment">// Construction and destruction</span>
|
|
<a name="l01325"></a>01325 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01326"></a><a class="code" href="a00167.html#a4b40e99e78aacbfa4fc4129251de7932">01326</a> <a class="code" href="a00167.html#a4b40e99e78aacbfa4fc4129251de7932">indexed_const_iterator2</a> ():
|
|
<a name="l01327"></a>01327 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (), <a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> (), <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> () {}
|
|
<a name="l01328"></a>01328 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01329"></a><a class="code" href="a00167.html#a9b30ebf4f89344caf0370582724d37c1">01329</a> <a class="code" href="a00167.html#a4b40e99e78aacbfa4fc4129251de7932">indexed_const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a> &c, <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a> it1, <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a> it2):
|
|
<a name="l01330"></a>01330 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (c), <a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> (it1), <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> (it2) {}
|
|
<a name="l01331"></a>01331 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01332"></a><a class="code" href="a00167.html#a55d7243e24cb5140018802f0faa4ed34">01332</a> <a class="code" href="a00167.html#a4b40e99e78aacbfa4fc4129251de7932">indexed_const_iterator2</a> (<span class="keyword">const</span> <a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">iterator_type</a> &it):
|
|
<a name="l01333"></a>01333 <a class="code" href="a00069.html" title="Base class of all proxy classes that contain a (redirectable) reference to an immutable object...">container_const_reference</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>> (it ()), <a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> (it.<a class="code" href="a00167.html#a39d87e319ef33ce70447d0fb0055b8de">index1</a> ()), <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> (it.<a class="code" href="a00167.html#adaf70a9ba33b26052718d16664eb2f5b">index2</a> ()) {}
|
|
<a name="l01334"></a>01334
|
|
<a name="l01335"></a>01335 <span class="comment">// Arithmetic</span>
|
|
<a name="l01336"></a>01336 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01337"></a><a class="code" href="a00167.html#a4144ea960cc815dba19a88bf58b70eb8">01337</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &<a class="code" href="a00167.html#a4144ea960cc815dba19a88bf58b70eb8">operator ++ </a>() {
|
|
<a name="l01338"></a>01338 ++ <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01339"></a>01339 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01340"></a>01340 }
|
|
<a name="l01341"></a>01341 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01342"></a><a class="code" href="a00167.html#acd0c65404d9a33efbb00b48108dea34a">01342</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &<a class="code" href="a00167.html#acd0c65404d9a33efbb00b48108dea34a">operator -- </a>() {
|
|
<a name="l01343"></a>01343 -- <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01344"></a>01344 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01345"></a>01345 }
|
|
<a name="l01346"></a>01346 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01347"></a><a class="code" href="a00167.html#ac1e14f7981a4141899ec7ee9fe05c3db">01347</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &<a class="code" href="a00167.html#ac1e14f7981a4141899ec7ee9fe05c3db">operator += </a>(<a class="code" href="a00167.html#af9d10eeb260c14af6e8f00c30dc75141">difference_type</a> n) {
|
|
<a name="l01348"></a>01348 <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> += n;
|
|
<a name="l01349"></a>01349 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01350"></a>01350 }
|
|
<a name="l01351"></a>01351 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01352"></a><a class="code" href="a00167.html#a1f5e9d9b43d6c4c1662d52be0b86c5aa">01352</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &<a class="code" href="a00167.html#a1f5e9d9b43d6c4c1662d52be0b86c5aa">operator -= </a>(<a class="code" href="a00167.html#af9d10eeb260c14af6e8f00c30dc75141">difference_type</a> n) {
|
|
<a name="l01353"></a>01353 <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> -= n;
|
|
<a name="l01354"></a>01354 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01355"></a>01355 }
|
|
<a name="l01356"></a>01356 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01357"></a><a class="code" href="a00167.html#a281aa312a5ce305e97407bac16575297">01357</a> <a class="code" href="a00167.html#af9d10eeb260c14af6e8f00c30dc75141">difference_type</a> <a class="code" href="a00167.html#a281aa312a5ce305e97407bac16575297">operator - </a>(<span class="keyword">const</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01358"></a>01358 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01359"></a>01359 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> == it.<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01360"></a>01360 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> - it.<a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01361"></a>01361 }
|
|
<a name="l01362"></a>01362
|
|
<a name="l01363"></a>01363 <span class="comment">// Dereference</span>
|
|
<a name="l01364"></a>01364 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01365"></a><a class="code" href="a00167.html#aa879877f2f195933e3bd6853a8921ee4">01365</a> <a class="code" href="a00167.html#a20a4ab00644738f314ff44bdb31fda35">reference</a> <a class="code" href="a00167.html#aa879877f2f195933e3bd6853a8921ee4">operator * </a>()<span class="keyword"> const </span>{
|
|
<a name="l01366"></a>01366 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00167.html#a39d87e319ef33ce70447d0fb0055b8de">index1</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a979596ba6e2373d596e34c2a73809cf6">size1</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01367"></a>01367 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00167.html#adaf70a9ba33b26052718d16664eb2f5b">index2</a> () < (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a981c2ed31bf42bd03499d4ee32444141">size2</a> (), <a class="code" href="a00015.html">bad_index</a> ());
|
|
<a name="l01368"></a>01368 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) () (<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>, <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>);
|
|
<a name="l01369"></a>01369 }
|
|
<a name="l01370"></a>01370 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01371"></a><a class="code" href="a00167.html#a63b0c5c4838c99a3580ff483004aa129">01371</a> <a class="code" href="a00167.html#a20a4ab00644738f314ff44bdb31fda35">reference</a> <a class="code" href="a00167.html#a63b0c5c4838c99a3580ff483004aa129">operator [] </a>(<a class="code" href="a00167.html#af9d10eeb260c14af6e8f00c30dc75141">difference_type</a> n)<span class="keyword"> const </span>{
|
|
<a name="l01372"></a>01372 <span class="keywordflow">return</span> *((*this) + n);
|
|
<a name="l01373"></a>01373 }
|
|
<a name="l01374"></a>01374
|
|
<a name="l01375"></a>01375 <span class="comment">// Index</span>
|
|
<a name="l01376"></a>01376 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01377"></a><a class="code" href="a00167.html#a39d87e319ef33ce70447d0fb0055b8de">01377</a> <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a> <a class="code" href="a00167.html#a39d87e319ef33ce70447d0fb0055b8de">index1</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01378"></a>01378 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>;
|
|
<a name="l01379"></a>01379 }
|
|
<a name="l01380"></a>01380 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01381"></a><a class="code" href="a00167.html#adaf70a9ba33b26052718d16664eb2f5b">01381</a> <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a> <a class="code" href="a00167.html#adaf70a9ba33b26052718d16664eb2f5b">index2</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01382"></a>01382 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01383"></a>01383 }
|
|
<a name="l01384"></a>01384
|
|
<a name="l01385"></a>01385 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01386"></a><a class="code" href="a00167.html#aedcc438a84941072e1e76ec4bc9eff86">01386</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00167.html#aedcc438a84941072e1e76ec4bc9eff86">begin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01387"></a>01387 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find1 (1, 0, <a class="code" href="a00167.html#adaf70a9ba33b26052718d16664eb2f5b">index2</a> ());
|
|
<a name="l01388"></a>01388 }
|
|
<a name="l01389"></a>01389 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01390"></a><a class="code" href="a00167.html#a8b75e1d064638a7c90355036909451b1">01390</a> <a class="code" href="a00166.html" title="A class implementing an indexed random access iterator of a matrix.">dual_iterator_type</a> <a class="code" href="a00167.html#a8b75e1d064638a7c90355036909451b1">end</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01391"></a>01391 <span class="keywordflow">return</span> (*<span class="keyword">this</span>) ().find1 (1, (*<span class="keyword">this</span>) ().<a class="code" href="a00658.html#a979596ba6e2373d596e34c2a73809cf6">size1</a> (), <a class="code" href="a00167.html#adaf70a9ba33b26052718d16664eb2f5b">index2</a> ());
|
|
<a name="l01392"></a>01392 }
|
|
<a name="l01393"></a>01393 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01394"></a><a class="code" href="a00167.html#a3e851d759c04221e4541028d9b95f4a5">01394</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00167.html#a3e851d759c04221e4541028d9b95f4a5">rbegin</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01395"></a>01395 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a35cb5ef4e4ebc43d620390f43f131c90">dual_reverse_iterator_type</a> (<a class="code" href="a00167.html#a8b75e1d064638a7c90355036909451b1">end</a> ());
|
|
<a name="l01396"></a>01396 }
|
|
<a name="l01397"></a>01397 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01398"></a><a class="code" href="a00167.html#a70231446cd146e4317706fbbf54d6788">01398</a> <a class="code" href="a00367.html" title="1st base class of all matrix reverse iterators. (non-MSVC version)">dual_reverse_iterator_type</a> <a class="code" href="a00167.html#a70231446cd146e4317706fbbf54d6788">rend</a> ()<span class="keyword"> const </span>{
|
|
<a name="l01399"></a>01399 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a35cb5ef4e4ebc43d620390f43f131c90">dual_reverse_iterator_type</a> (<a class="code" href="a00167.html#aedcc438a84941072e1e76ec4bc9eff86">begin</a> ());
|
|
<a name="l01400"></a>01400 }
|
|
<a name="l01401"></a>01401
|
|
<a name="l01402"></a>01402 <span class="comment">// Assignment</span>
|
|
<a name="l01403"></a>01403 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01404"></a><a class="code" href="a00167.html#a1e89531a1eae0bce75f000e4c9c7004e">01404</a> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &<a class="code" href="a00167.html#a1e89531a1eae0bce75f000e4c9c7004e">operator = </a>(<span class="keyword">const</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &it) {
|
|
<a name="l01405"></a>01405 <span class="comment">// FIX: ICC needs full qualification?!</span>
|
|
<a name="l01406"></a>01406 <span class="comment">// assign (&it ());</span>
|
|
<a name="l01407"></a>01407 <a class="code" href="a00069.html#ab14250fc4fe5b9bcab4eb9fba8a5b5f8">container_const_reference<C>::assign</a> (&it ());
|
|
<a name="l01408"></a>01408 <a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> = it.<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>;
|
|
<a name="l01409"></a>01409 <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> = it.<a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01410"></a>01410 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
|
|
<a name="l01411"></a>01411 }
|
|
<a name="l01412"></a>01412
|
|
<a name="l01413"></a>01413 <span class="comment">// Comparison</span>
|
|
<a name="l01414"></a>01414 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01415"></a><a class="code" href="a00167.html#a9b7193d37673383f59f02cc32dc5b7cc">01415</a> <span class="keywordtype">bool</span> <a class="code" href="a00167.html#a9b7193d37673383f59f02cc32dc5b7cc">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01416"></a>01416 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01417"></a>01417 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> == it.<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01418"></a>01418 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> == it.<a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01419"></a>01419 }
|
|
<a name="l01420"></a>01420 <a class="code" href="a00603.html#a578c14139742374e9a04e5afcb6cd24c">BOOST_UBLAS_INLINE</a>
|
|
<a name="l01421"></a><a class="code" href="a00167.html#a1912a285b3c4ccf426f03e3297998151">01421</a> <span class="keywordtype">bool</span> <a class="code" href="a00167.html#a1912a285b3c4ccf426f03e3297998151">operator < </a>(<span class="keyword">const</span> <a class="code" href="a00167.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_const_iterator2</a> &it)<span class="keyword"> const </span>{
|
|
<a name="l01422"></a>01422 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (&(*<span class="keyword">this</span>) () == &it (), <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01423"></a>01423 <a class="code" href="a00610.html#aada705f9d1fd36fc1af3b703217ec69e">BOOST_UBLAS_CHECK</a> (<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a> == it.<a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>, <a class="code" href="a00132.html">external_logic</a> ());
|
|
<a name="l01424"></a>01424 <span class="keywordflow">return</span> <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a> < it.<a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01425"></a>01425 }
|
|
<a name="l01426"></a>01426
|
|
<a name="l01427"></a>01427 <span class="keyword">private</span>:
|
|
<a name="l01428"></a><a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">01428</a> <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a> <a class="code" href="a00167.html#a658ff8e1b2d15dcff1eadab81cdc9928">it1_</a>;
|
|
<a name="l01429"></a><a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">01429</a> <a class="code" href="a00167.html#a8fbbbdce234e7c7aac92853ac76df81a">size_type</a> <a class="code" href="a00167.html#a274c19cfaa5c9838ea5f64a81fda9cf0">it2_</a>;
|
|
<a name="l01430"></a>01430
|
|
<a name="l01431"></a><a class="code" href="a00167.html#a772cbf3987906d386082a9d1bb8e1669">01431</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00170.html" title="A class implementing an indexed random access iterator of a matrix.">indexed_iterator2</a><<a class="code" href="a00069.html#a399148ca75e693559e4392e246f8285a">container_type</a>, <a class="code" href="a00167.html#a6a032dec298c27a6102c59128eb59c46">iterator_category</a>>;
|
|
<a name="l01432"></a>01432 };
|
|
<a name="l01433"></a>01433
|
|
<a name="l01434"></a>01434 }}}
|
|
<a name="l01435"></a>01435
|
|
<a name="l01436"></a>01436 <span class="preprocessor">#endif</span>
|
|
</pre></div></div>
|
|
</div>
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="a00616.html">iterator.hpp</a> </li>
|
|
<!--- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<small>
|
|
<small>
|
|
<small>
|
|
<table width="100%">
|
|
<tr>
|
|
<td align="right">
|
|
Copyright © 2010-2011 David Bellot - Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">Boost Software License, Version 1.0.</a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</small>
|
|
</small>
|
|
</small>
|