locale/doc/html/index_8hpp_source.html
Artyom Beilis ff3fe57f08 Removed deprecated BOOST_HAS_CHAR16/32_T macro and replaced with
BOOST_LOCALE_ENABLE_CHAR16_T/BOOST_LOCALE_ENABLE_CHAR32_T
2015-10-18 18:36:39 +03:00

881 lines
141 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>Boost.Locale: boost/locale/boundary/index.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="boost-small.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Boost.Locale
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</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><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index_8hpp_source.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">index.hpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Copyright (c) 2009-2011 Artyom Beilis (Tonkikh)</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Distributed under the Boost Software License, Version 1.0. (See</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// accompanying file LICENSE_1_0.txt or copy at</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// http://www.boost.org/LICENSE_1_0.txt)</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#ifndef BOOST_LOCALE_BOUNDARY_INDEX_HPP_INCLUDED</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define BOOST_LOCALE_BOUNDARY_INDEX_HPP_INCLUDED</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;boost/locale/config.hpp&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;boost/locale/boundary/types.hpp&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;boost/locale/boundary/facets.hpp&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;boost/locale/boundary/segment.hpp&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;boost/locale/boundary/boundary_point.hpp&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &lt;boost/iterator/iterator_facade.hpp&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;boost/type_traits/is_same.hpp&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;boost/shared_ptr.hpp&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;boost/assert.hpp&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef BOOST_MSVC</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma warning(push)</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"></span><span class="preprocessor"># pragma warning(disable : 4275 4251 4231 4660)</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;locale&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;iterator&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span>boost {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">namespace </span>locale {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">namespace </span>boundary {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">namespace </span>details {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; template&lt;typename IteratorType,typename CategoryType = typename std::iterator_traits&lt;IteratorType&gt;::iterator_category&gt;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">struct </span>mapping_traits {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;IteratorType&gt;::value_type char_type;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,IteratorType b,IteratorType e,std::locale <span class="keyword">const</span> &amp;l)</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::basic_string&lt;char_type&gt; str(b,e);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> std::use_facet&lt;boundary_indexing&lt;char_type&gt; &gt;(l).map(t,str.c_str(),str.c_str()+str.size());</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; };</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> CharType,<span class="keyword">typename</span> SomeIteratorType&gt;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">struct </span>linear_iterator_traits {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_linear =</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; is_same&lt;SomeIteratorType,CharType*&gt;::value</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; || is_same&lt;SomeIteratorType,CharType const*&gt;::value</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; || is_same&lt;SomeIteratorType,typename std::basic_string&lt;CharType&gt;::iterator&gt;::value</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; || is_same&lt;SomeIteratorType,typename std::basic_string&lt;CharType&gt;::const_iterator&gt;::value</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; || is_same&lt;SomeIteratorType,typename std::vector&lt;CharType&gt;::iterator&gt;::value</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; || is_same&lt;SomeIteratorType,typename std::vector&lt;CharType&gt;::const_iterator&gt;::value</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; ;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; };</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> IteratorType&gt;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">struct </span>mapping_traits&lt;IteratorType,std::random_access_iterator_tag&gt; {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;IteratorType&gt;::value_type char_type;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> map(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> t,IteratorType b,IteratorType e,std::locale <span class="keyword">const</span> &amp;l)</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> result;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Optimize for most common cases</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// C++0x requires that string is continious in memory and all known</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// string implementations</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// do this because of c_str() support. </span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">//</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(linear_iterator_traits&lt;char_type,IteratorType&gt;::is_linear &amp;&amp; b!=e)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; char_type <span class="keyword">const</span> *begin = &amp;*b;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; char_type <span class="keyword">const</span> *end = begin + (e-b);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> tmp=std::use_facet&lt;boundary_indexing&lt;char_type&gt; &gt;(l).map(t,begin,end);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; result.swap(tmp);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::basic_string&lt;char_type&gt; str(b,e);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> tmp = std::use_facet&lt;boundary_indexing&lt;char_type&gt; &gt;(l).map(t,str.c_str(),str.c_str()+str.size());</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; result.swap(tmp);</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; };</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">class </span>mapping {</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">typedef</span> BaseIterator base_iterator;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> std::iterator_traits&lt;base_iterator&gt;::value_type char_type;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; mapping(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; base_iterator begin,</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; base_iterator end,</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; std::locale <span class="keyword">const</span> &amp;loc) </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; : </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; index_(new <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a>()),</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; begin_(begin),</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; end_(end)</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> idx=details::mapping_traits&lt;base_iterator&gt;::map(type,begin,end,loc);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; index_-&gt;swap(idx);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; mapping()</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <span class="keyword">const</span> &amp;index()<span class="keyword"> const</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> *index_;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; base_iterator begin()<span class="keyword"> const</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> begin_;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; base_iterator end()<span class="keyword"> const</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> end_;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classboost_1_1shared__ptr.html">boost::shared_ptr&lt;index_type&gt;</a> index_;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; base_iterator begin_,end_;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; };</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">class </span>segment_index_iterator : </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">public</span> boost::iterator_facade&lt;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; segment_index_iterator&lt;BaseIterator&gt;,</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; segment&lt;BaseIterator&gt;,</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; boost::bidirectional_traversal_tag,</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; segment&lt;BaseIterator&gt; const &amp;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; &gt;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">typedef</span> BaseIterator base_iterator;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">typedef</span> mapping&lt;base_iterator&gt; mapping_type;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">typedef</span> segment&lt;base_iterator&gt; segment_type;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; segment_index_iterator() : current_(0,0),map_(0)</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; segment_index_iterator(base_iterator p,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask,<span class="keywordtype">bool</span> full_select) :</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; map_(map),</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; mask_(mask),</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; full_select_(full_select)</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; set(p);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; segment_index_iterator(<span class="keywordtype">bool</span> is_begin,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask,<span class="keywordtype">bool</span> full_select) :</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; map_(map),</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; mask_(mask),</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; full_select_(full_select)</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span>(is_begin)</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; set_begin();</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; set_end();</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; segment_type <span class="keyword">const</span> &amp;dereference()<span class="keyword"> const</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> value_;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">bool</span> equal(segment_index_iterator <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> map_ == other.map_ &amp;&amp; current_.second == other.current_.second;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">void</span> increment()</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::pair&lt;size_t,size_t&gt; next = current_;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(full_select_) {</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; next.first = next.second;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">while</span>(next.second &lt; size()) {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; next.second++;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(valid_offset(next.second))</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span>(next.second == size())</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; next.first = next.second - 1;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">while</span>(next.second &lt; size()) {</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; next.first = next.second;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; next.second++;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span>(valid_offset(next.second))</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; update_current(next);</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> decrement()</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; std::pair&lt;size_t,size_t&gt; next = current_;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(full_select_) {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">while</span>(next.second &gt;1) {</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; next.second--;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span>(valid_offset(next.second))</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; next.first = next.second;</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">while</span>(next.first &gt;0) {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; next.first--;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(valid_offset(next.first))</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">while</span>(next.second &gt;1) {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; next.second--;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(valid_offset(next.second))</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; next.first = next.second - 1;</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; update_current(next);</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordtype">void</span> set_end()</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; current_.first = size() - 1;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; current_.second = size();</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; value_ = segment_type(map_-&gt;end(),map_-&gt;end(),0);</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">void</span> set_begin()</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; current_.first = current_.second = 0;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; value_ = segment_type(map_-&gt;begin(),map_-&gt;begin(),0);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; increment();</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordtype">void</span> set(base_iterator p)</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordtype">size_t</span> dist=std::distance(map_-&gt;begin(),p);</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; index_type::const_iterator b=map_-&gt;index().begin(),e=map_-&gt;index().end();</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; index_type::const_iterator </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; boundary_point=std::upper_bound(b,e,break_info(dist));</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">while</span>(boundary_point != e &amp;&amp; (boundary_point-&gt;rule &amp; mask_)==0)</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; boundary_point++;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; current_.first = current_.second = boundary_point - b;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span>(full_select_) {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">while</span>(current_.first &gt; 0) {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; current_.first --;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(valid_offset(current_.first))</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(current_.first &gt; 0)</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; current_.first --;</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; value_.first = map_-&gt;begin();</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; std::advance(value_.first,get_offset(current_.first));</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; value_.second = value_.first;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; std::advance(value_.second,get_offset(current_.second) - get_offset(current_.first));</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; update_rule();</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">void</span> update_current(std::pair&lt;size_t,size_t&gt; pos)</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; std::ptrdiff_t first_diff = get_offset(pos.first) - get_offset(current_.first);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; std::ptrdiff_t second_diff = get_offset(pos.second) - get_offset(current_.second);</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; std::advance(value_.first,first_diff);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; std::advance(value_.second,second_diff);</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; current_ = pos;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; update_rule();</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">void</span> update_rule()</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span>(current_.second != size()) {</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; value_.rule(index()[current_.second].rule);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">size_t</span> get_offset(<span class="keywordtype">size_t</span> ind)<span class="keyword"> const</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span>(ind == size())</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> index().back().offset;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> index()[ind].offset;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">bool</span> valid_offset(<span class="keywordtype">size_t</span> offset)<span class="keyword"> const</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> offset == 0 </div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; || offset == size() <span class="comment">// make sure we not acess index[size]</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; || (index()[offset].rule &amp; mask_)!=0;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">size_t</span> size()<span class="keyword"> const</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> index().size();</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <span class="keyword">const</span> &amp;index()<span class="keyword"> const</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> map_-&gt;index();</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; </div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; segment_type value_;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; std::pair&lt;size_t,size_t&gt; current_;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; mapping_type <span class="keyword">const</span> *map_;</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask_;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordtype">bool</span> full_select_;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; };</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; </div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">class </span>boundary_point_index_iterator : </div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">public</span> boost::iterator_facade&lt;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; boundary_point_index_iterator&lt;BaseIterator&gt;,</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; boundary_point&lt;BaseIterator&gt;,</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; boost::bidirectional_traversal_tag,</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; boundary_point&lt;BaseIterator&gt; const &amp;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; &gt;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">typedef</span> BaseIterator base_iterator;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">typedef</span> mapping&lt;base_iterator&gt; mapping_type;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">typedef</span> boundary_point&lt;base_iterator&gt; boundary_point_type;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; boundary_point_index_iterator() : current_(0),map_(0)</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; boundary_point_index_iterator(<span class="keywordtype">bool</span> is_begin,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask) :</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; map_(map),</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; mask_(mask)</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span>(is_begin)</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; set_begin();</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; set_end();</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; boundary_point_index_iterator(base_iterator p,mapping_type <span class="keyword">const</span> *map,<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask) :</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; map_(map),</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; mask_(mask)</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; {</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; set(p);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; boundary_point_type <span class="keyword">const</span> &amp;dereference()<span class="keyword"> const</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> value_;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">bool</span> equal(boundary_point_index_iterator <span class="keyword">const</span> &amp;other)<span class="keyword"> const</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> map_ == other.map_ &amp;&amp; current_ == other.current_;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordtype">void</span> increment()</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">size_t</span> next = current_;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">while</span>(next &lt; size()) {</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; next++;</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(valid_offset(next))</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; update_current(next);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">void</span> decrement()</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordtype">size_t</span> next = current_;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">while</span>(next&gt;0) {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; next--;</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span>(valid_offset(next))</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; update_current(next);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordtype">void</span> set_end()</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; current_ = size();</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; value_ = boundary_point_type(map_-&gt;end(),0);</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">void</span> set_begin()</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; current_ = 0;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; value_ = boundary_point_type(map_-&gt;begin(),0);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">void</span> set(base_iterator p)</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordtype">size_t</span> dist = std::distance(map_-&gt;begin(),p);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; index_type::const_iterator b=index().begin();</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; index_type::const_iterator e=index().end();</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; index_type::const_iterator ptr = std::lower_bound(b,e,break_info(dist));</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(ptr==index().end())</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; current_=size()-1;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; current_=ptr - index().begin();</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">while</span>(!valid_offset(current_))</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; current_ ++;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; std::ptrdiff_t diff = get_offset(current_) - dist;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; std::advance(p,diff);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; value_.iterator(p);</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; update_rule();</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">void</span> update_current(<span class="keywordtype">size_t</span> pos)</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; std::ptrdiff_t diff = get_offset(pos) - get_offset(current_);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; base_iterator i=value_.iterator();</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; std::advance(i,diff);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; current_ = pos;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; value_.iterator(i);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; update_rule();</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">void</span> update_rule()</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span>(current_ != size()) {</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; value_.rule(index()[current_].rule);</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">size_t</span> get_offset(<span class="keywordtype">size_t</span> ind)<span class="keyword"> const</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span>(ind == size())</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">return</span> index().back().offset;</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> index()[ind].offset;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">bool</span> valid_offset(<span class="keywordtype">size_t</span> offset)<span class="keyword"> const</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> offset == 0 </div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; || offset + 1 &gt;= size() <span class="comment">// last and first are always valid regardless of mark</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; || (index()[offset].rule &amp; mask_)!=0;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; </div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">size_t</span> size()<span class="keyword"> const</span></div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> index().size();</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">index_type</a> <span class="keyword">const</span> &amp;index()<span class="keyword"> const</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span> map_-&gt;index();</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; }</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; </div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; boundary_point_type value_;</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordtype">size_t</span> current_;</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; mapping_type <span class="keyword">const</span> *map_;</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask_;</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; };</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; } <span class="comment">// details</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classboost_1_1locale_1_1boundary_1_1segment__index.html"> 497</a></span>&#160; <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html"> 500</a></span>&#160; <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>;</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; </div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> {</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; </div>
<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5"> 562</a></span>&#160; <span class="keyword">typedef</span> BaseIterator <a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>;</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span></div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> unspecified_iterator_type <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>;</div>
<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724"> 582</a></span>&#160; <span class="keyword">typedef</span> unspecified_iterator_type <a class="code" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">const_iterator</a>;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> details::segment_index_iterator&lt;base_iterator&gt; <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>;</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keyword">typedef</span> details::segment_index_iterator&lt;base_iterator&gt; <a class="code" href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">const_iterator</a>;</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment.html">segment&lt;base_iterator&gt;</a> <a class="code" href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">value_type</a>;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465"> 602</a></span>&#160; <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>() : mask_(0xFFFFFFFFu),full_select_(false)</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div>
<div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3"> 609</a></span>&#160; <a class="code" href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3">segment_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin,</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end,</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask,</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; std::locale <span class="keyword">const</span> &amp;loc=std::locale()) </div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; :</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; map_(type,begin,end,loc),</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; mask_(mask),</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; full_select_(false)</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; {</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; }</div>
<div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc"> 624</a></span>&#160; <a class="code" href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">segment_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin,</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end,</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; std::locale <span class="keyword">const</span> &amp;loc=std::locale()) </div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; :</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; map_(type,begin,end,loc),</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; mask_(0xFFFFFFFFu),</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; full_select_(false)</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; {</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;);</div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a> <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">operator = </a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;);</div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; </div>
<div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e"> 665</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">map</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,<a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> begin,<a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; {</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; map_ = mapping_type(type,begin,end,loc);</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;</div>
<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af"> 679</a></span>&#160; <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> <a class="code" href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">begin</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>(<span class="keyword">true</span>,&amp;map_,mask_,full_select_);</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; }</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div>
<div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f"> 691</a></span>&#160; <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> <a class="code" href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">end</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>(<span class="keyword">false</span>,&amp;map_,mask_,full_select_);</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; }</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div>
<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="group__boundary.html#ga2480236106971797460187777f2a4411"> 713</a></span>&#160; <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a> <a class="code" href="group__boundary.html#ga2480236106971797460187777f2a4411">find</a>(<a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a> p)<span class="keyword"> const</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">iterator</a>(p,&amp;map_,mask_,full_select_);</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; }</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; </div>
<div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a"> 721</a></span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> <a class="code" href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">rule</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> mask_;</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; }</div>
<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73"> 728</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">rule</a>(<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> v)</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; {</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; mask_ = v;</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc"> 746</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">full_select</a>()<span class="keyword"> const </span></div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> full_select_;</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div>
<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f"> 764</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">full_select</a>(<span class="keywordtype">bool</span> v) </div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; {</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; full_select_ = v;</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; </div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a>&lt;<a class="code" href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">base_iterator</a>&gt;;</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keyword">typedef</span> details::mapping&lt;base_iterator&gt; mapping_type;</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; mapping_type map_;</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask_;</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordtype">bool</span> full_select_;</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; };</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keyword">class </span>boundary_point_index {</div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5"> 831</a></span>&#160; <span class="keyword">typedef</span> BaseIterator <a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>;</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;<span class="preprocessor"> #ifdef BOOST_LOCALE_DOXYGEN</span></div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> unspecified_iterator_type <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>;</div>
<div class="line"><a name="l00851"></a><span class="lineno"><a class="line" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16"> 851</a></span>&#160; <span class="keyword">typedef</span> unspecified_iterator_type <a class="code" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">const_iterator</a>;</div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> details::boundary_point_index_iterator&lt;base_iterator&gt; <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>;</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keyword">typedef</span> details::boundary_point_index_iterator&lt;base_iterator&gt; <a class="code" href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">const_iterator</a>;</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boundary_point&lt;base_iterator&gt;</a> <a class="code" href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">value_type</a>;</div>
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; </div>
<div class="line"><a name="l00871"></a><span class="lineno"><a class="line" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69"> 871</a></span>&#160; <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>() : mask_(0xFFFFFFFFu)</div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; {</div>
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; </div>
<div class="line"><a name="l00879"></a><span class="lineno"><a class="line" href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f"> 879</a></span>&#160; <a class="code" href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f">boundary_point_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin,</div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end,</div>
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask,</div>
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; std::locale <span class="keyword">const</span> &amp;loc=std::locale()) </div>
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; :</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; map_(type,begin,end,loc),</div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; mask_(mask)</div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; {</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div>
<div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69"> 893</a></span>&#160; <a class="code" href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boundary_point_index</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,</div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin,</div>
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end,</div>
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; std::locale <span class="keyword">const</span> &amp;loc=std::locale()) </div>
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; :</div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; map_(type,begin,end,loc),</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; mask_(0xFFFFFFFFu)</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; {</div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;other);</div>
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index</a> <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">operator=</a>(<a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;base_iterator&gt;</a> <span class="keyword">const</span> &amp;other);</div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;</div>
<div class="line"><a name="l00932"></a><span class="lineno"><a class="line" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418"> 932</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">map</a>(<a class="code" href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boundary_type</a> type,<a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> begin,<a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> end,std::locale <span class="keyword">const</span> &amp;loc=std::locale())</div>
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; {</div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; map_ = mapping_type(type,begin,end,loc);</div>
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div>
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div>
<div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f"> 946</a></span>&#160; <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> <a class="code" href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">begin</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>(<span class="keyword">true</span>,&amp;map_,mask_);</div>
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; }</div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;</div>
<div class="line"><a name="l00960"></a><span class="lineno"><a class="line" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b"> 960</a></span>&#160; <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> <a class="code" href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">end</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>(<span class="keyword">false</span>,&amp;map_,mask_);</div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; }</div>
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;</div>
<div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d"> 978</a></span>&#160; <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a> <a class="code" href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">find</a>(<a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a> p)<span class="keyword"> const</span></div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">iterator</a>(p,&amp;map_,mask_);</div>
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; }</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; </div>
<div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03"> 986</a></span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> <a class="code" href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">rule</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">return</span> mask_;</div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; }</div>
<div class="line"><a name="l00993"></a><span class="lineno"><a class="line" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975"> 993</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">rule</a>(<a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> v)</div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; {</div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; mask_ = v;</div>
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; }</div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div>
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index</a>&lt;<a class="code" href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">base_iterator</a>&gt;;</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keyword">typedef</span> details::mapping&lt;base_iterator&gt; mapping_type;</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; mapping_type map_;</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <a class="code" href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">rule_type</a> mask_;</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; };</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; </div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <a class="code" href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">segment_index&lt;BaseIterator&gt;::segment_index</a>(boundary_point_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other) :</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; map_(other.map_),</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; mask_(0xFFFFFFFFu),</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; full_select_(false)</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; {</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; }</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; </div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <a class="code" href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boundary_point_index&lt;BaseIterator&gt;::boundary_point_index</a>(segment_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other) :</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; map_(other.map_),</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; mask_(0xFFFFFFFFu)</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; {</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; segment_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">segment_index&lt;BaseIterator&gt;::operator=</a>(boundary_point_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other)</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; {</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; map_ = other.map_;</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; }</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; </div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> BaseIterator&gt;</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; boundary_point_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;<a class="code" href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">boundary_point_index&lt;BaseIterator&gt;::operator=</a>(segment_index&lt;BaseIterator&gt; <span class="keyword">const</span> &amp;other)</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; {</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; map_ = other.map_;</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; }</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; </div>
<div class="line"><a name="l01037"></a><span class="lineno"><a class="line" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c"> 1037</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;std::string::const_iterator&gt;</a> <a class="code" href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">ssegment_index</a>; </div>
<div class="line"><a name="l01038"></a><span class="lineno"><a class="line" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843"> 1038</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;std::wstring::const_iterator&gt;</a> <a class="code" href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">wssegment_index</a>; </div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR16_T</span></div>
<div class="line"><a name="l01040"></a><span class="lineno"><a class="line" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4"> 1040</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;std::u16string::const_iterator&gt;</a> <a class="code" href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">u16ssegment_index</a>;</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR32_T</span></div>
<div class="line"><a name="l01043"></a><span class="lineno"><a class="line" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20"> 1043</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;std::u32string::const_iterator&gt;</a> <a class="code" href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">u32ssegment_index</a>;</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="preprocessor"></span> </div>
<div class="line"><a name="l01046"></a><span class="lineno"><a class="line" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8"> 1046</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;char const *&gt;</a> <a class="code" href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">csegment_index</a>; </div>
<div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36"> 1047</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;wchar_t const *&gt;</a> <a class="code" href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">wcsegment_index</a>; </div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR16_T</span></div>
<div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414"> 1049</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;char16_t const *&gt;</a> <a class="code" href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">u16csegment_index</a>; </div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR32_T</span></div>
<div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9"> 1052</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1segment__index.html">segment_index&lt;char32_t const *&gt;</a> <a class="code" href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">u32csegment_index</a>; </div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727"> 1055</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;std::string::const_iterator&gt;</a> <a class="code" href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">sboundary_point_index</a>;</div>
<div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3"> 1056</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;std::wstring::const_iterator&gt;</a> <a class="code" href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">wsboundary_point_index</a>;</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR16_T</span></div>
<div class="line"><a name="l01058"></a><span class="lineno"><a class="line" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f"> 1058</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;std::u16string::const_iterator&gt;</a> <a class="code" href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">u16sboundary_point_index</a>;</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR32_T</span></div>
<div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8"> 1061</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;std::u32string::const_iterator&gt;</a> <a class="code" href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">u32sboundary_point_index</a>;</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="preprocessor"></span> </div>
<div class="line"><a name="l01064"></a><span class="lineno"><a class="line" href="group__boundary.html#ga31f0617de9388783205020a8679b40af"> 1064</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;char const *&gt;</a> <a class="code" href="group__boundary.html#ga31f0617de9388783205020a8679b40af">cboundary_point_index</a>; </div>
<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59"> 1065</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;wchar_t const *&gt;</a> <a class="code" href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">wcboundary_point_index</a>; </div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR16_T</span></div>
<div class="line"><a name="l01067"></a><span class="lineno"><a class="line" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266"> 1067</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;char16_t const *&gt;</a> <a class="code" href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">u16cboundary_point_index</a>;</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="preprocessor"></span><span class="preprocessor"> #ifdef BOOST_LOCALE_ENABLE_CHAR32_T</span></div>
<div class="line"><a name="l01070"></a><span class="lineno"><a class="line" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7"> 1070</a></span>&#160;<span class="preprocessor"></span> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boundary_point_index&lt;char32_t const *&gt;</a> <a class="code" href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">u32cboundary_point_index</a>;</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; } <span class="comment">// boundary</span></div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; } <span class="comment">// locale</span></div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;} <span class="comment">// boost</span></div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor">#ifdef BOOST_MSVC</span></div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor"></span><span class="comment">// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4</span></div>
<div class="ttc" id="group__boundary_html_ga205fd51daa439a18527675e663a0802f"><div class="ttname"><a href="group__boundary.html#ga205fd51daa439a18527675e663a0802f">boost::locale::boundary::segment_index::full_select</a></div><div class="ttdeci">void full_select(bool v)</div><div class="ttdef"><b>Definition:</b> index.hpp:764</div></div>
<div class="ttc" id="classboost_1_1locale_1_1boundary_1_1segment_html"><div class="ttname"><a href="classboost_1_1locale_1_1boundary_1_1segment.html">boost::locale::boundary::segment</a></div><div class="ttdoc">a segment object that represents a pair of two iterators that define the range where this segment exi...</div><div class="ttdef"><b>Definition:</b> segment.hpp:102</div></div>
<div class="ttc" id="group__boundary_html_ga15de9963ce9bb6037c8525901dfbf641"><div class="ttname"><a href="group__boundary.html#ga15de9963ce9bb6037c8525901dfbf641">boost::locale::boundary::boundary_type</a></div><div class="ttdeci">boundary_type</div><div class="ttdef"><b>Definition:</b> types.hpp:39</div></div>
<div class="ttc" id="group__boundary_html_ga83d57b993b00686b2cac711667c6a931"><div class="ttname"><a href="group__boundary.html#ga83d57b993b00686b2cac711667c6a931">boost::locale::boundary::boundary_point_index::operator=</a></div><div class="ttdeci">boundary_point_index const &amp; operator=(segment_index&lt; base_iterator &gt; const &amp;other)</div></div>
<div class="ttc" id="classboost_1_1locale_1_1boundary_1_1boundary__point__index_html"><div class="ttname"><a href="classboost_1_1locale_1_1boundary_1_1boundary__point__index.html">boost::locale::boundary::boundary_point_index</a></div><div class="ttdoc">This class holds an index of boundary points and allows iterating over them. </div><div class="ttdef"><b>Definition:</b> index.hpp:500</div></div>
<div class="ttc" id="group__boundary_html_ga06f2faacb9d196ebc659ad5382ea2ca5"><div class="ttname"><a href="group__boundary.html#ga06f2faacb9d196ebc659ad5382ea2ca5">boost::locale::boundary::segment_index::base_iterator</a></div><div class="ttdeci">BaseIterator base_iterator</div><div class="ttdef"><b>Definition:</b> index.hpp:562</div></div>
<div class="ttc" id="group__boundary_html_ga6fff9ef7a0971ed3c686f3e8d5c56bf4"><div class="ttname"><a href="group__boundary.html#ga6fff9ef7a0971ed3c686f3e8d5c56bf4">boost::locale::boundary::u16ssegment_index</a></div><div class="ttdeci">segment_index&lt; std::u16string::const_iterator &gt; u16ssegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1040</div></div>
<div class="ttc" id="group__boundary_html_ga82c153957bff0be844a5ce4490d4e7f8"><div class="ttname"><a href="group__boundary.html#ga82c153957bff0be844a5ce4490d4e7f8">boost::locale::boundary::csegment_index</a></div><div class="ttdeci">segment_index&lt; char const * &gt; csegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1046</div></div>
<div class="ttc" id="group__boundary_html_gafa2a756b10d3522743204b45b794bb3e"><div class="ttname"><a href="group__boundary.html#gafa2a756b10d3522743204b45b794bb3e">boost::locale::boundary::segment_index::map</a></div><div class="ttdeci">void map(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</div><div class="ttdef"><b>Definition:</b> index.hpp:665</div></div>
<div class="ttc" id="group__boundary_html_gad539aad8c788c8e90cdf08aeed5df4a3"><div class="ttname"><a href="group__boundary.html#gad539aad8c788c8e90cdf08aeed5df4a3">boost::locale::boundary::wsboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; std::wstring::const_iterator &gt; wsboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1056</div></div>
<div class="ttc" id="group__boundary_html_gabcb5bcc788909afeb8c68d857284cb59"><div class="ttname"><a href="group__boundary.html#gabcb5bcc788909afeb8c68d857284cb59">boost::locale::boundary::wcboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; wchar_t const * &gt; wcboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1065</div></div>
<div class="ttc" id="group__boundary_html_ga7f7328a860cf485a4bd8f17658c291e1"><div class="ttname"><a href="group__boundary.html#ga7f7328a860cf485a4bd8f17658c291e1">boost::locale::boundary::boundary_point_index::value_type</a></div><div class="ttdeci">boundary_point&lt; base_iterator &gt; value_type</div><div class="ttdef"><b>Definition:</b> index.hpp:860</div></div>
<div class="ttc" id="group__boundary_html_ga067c663d18faee08adb3355701ae72ba"><div class="ttname"><a href="group__boundary.html#ga067c663d18faee08adb3355701ae72ba">boost::locale::boundary::segment_index::value_type</a></div><div class="ttdeci">segment&lt; base_iterator &gt; value_type</div><div class="ttdef"><b>Definition:</b> index.hpp:591</div></div>
<div class="ttc" id="group__boundary_html_ga56e63913f51109e05a24a7136472a975"><div class="ttname"><a href="group__boundary.html#ga56e63913f51109e05a24a7136472a975">boost::locale::boundary::boundary_point_index::rule</a></div><div class="ttdeci">void rule(rule_type v)</div><div class="ttdef"><b>Definition:</b> index.hpp:993</div></div>
<div class="ttc" id="group__boundary_html_gae7941dc874ca05d2ef2a03f781c5b78a"><div class="ttname"><a href="group__boundary.html#gae7941dc874ca05d2ef2a03f781c5b78a">boost::locale::boundary::segment_index::operator=</a></div><div class="ttdeci">segment_index const &amp; operator=(boundary_point_index&lt; base_iterator &gt; const &amp;)</div></div>
<div class="ttc" id="group__boundary_html_ga1d214029f1a780b7bf6e3f23a3004c03"><div class="ttname"><a href="group__boundary.html#ga1d214029f1a780b7bf6e3f23a3004c03">boost::locale::boundary::boundary_point_index::rule</a></div><div class="ttdeci">rule_type rule() const </div><div class="ttdef"><b>Definition:</b> index.hpp:986</div></div>
<div class="ttc" id="group__boundary_html_gaf3d66d578e32a63b3f0ffbb59740667b"><div class="ttname"><a href="group__boundary.html#gaf3d66d578e32a63b3f0ffbb59740667b">boost::locale::boundary::boundary_point_index::end</a></div><div class="ttdeci">iterator end() const </div><div class="ttdef"><b>Definition:</b> index.hpp:960</div></div>
<div class="ttc" id="group__boundary_html_ga25e193c81052ef1795f1b53b46bc2095"><div class="ttname"><a href="group__boundary.html#ga25e193c81052ef1795f1b53b46bc2095">boost::locale::boundary::rule_type</a></div><div class="ttdeci">uint32_t rule_type</div><div class="ttdoc">Flags used with word boundary analysis the type of the word, line or sentence boundary found...</div><div class="ttdef"><b>Definition:</b> types.hpp:51</div></div>
<div class="ttc" id="classboost_1_1shared__ptr_html"><div class="ttname"><a href="classboost_1_1shared__ptr.html">boost::shared_ptr</a></div><div class="ttdef"><b>Definition:</b> generator.hpp:23</div></div>
<div class="ttc" id="group__boundary_html_ga1a89414f77d0b11b7fa8c3a5fa896266"><div class="ttname"><a href="group__boundary.html#ga1a89414f77d0b11b7fa8c3a5fa896266">boost::locale::boundary::u16cboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; char16_t const * &gt; u16cboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1067</div></div>
<div class="ttc" id="group__boundary_html_ga6b4b5d5cf80b55302a88e7b36c812418"><div class="ttname"><a href="group__boundary.html#ga6b4b5d5cf80b55302a88e7b36c812418">boost::locale::boundary::boundary_point_index::map</a></div><div class="ttdeci">void map(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</div><div class="ttdef"><b>Definition:</b> index.hpp:932</div></div>
<div class="ttc" id="group__boundary_html_gaf7a775e77dbbca3495e11d646df96fd2"><div class="ttname"><a href="group__boundary.html#gaf7a775e77dbbca3495e11d646df96fd2">boost::locale::boundary::segment_index::iterator</a></div><div class="ttdeci">unspecified_iterator_type iterator</div><div class="ttdef"><b>Definition:</b> index.hpp:578</div></div>
<div class="ttc" id="group__boundary_html_ga2c354f4cc03677b58c97038cd84dc465"><div class="ttname"><a href="group__boundary.html#ga2c354f4cc03677b58c97038cd84dc465">boost::locale::boundary::segment_index::segment_index</a></div><div class="ttdeci">segment_index()</div><div class="ttdef"><b>Definition:</b> index.hpp:602</div></div>
<div class="ttc" id="group__boundary_html_gaa20a99d93e3202680bb0660481e1d414"><div class="ttname"><a href="group__boundary.html#gaa20a99d93e3202680bb0660481e1d414">boost::locale::boundary::u16csegment_index</a></div><div class="ttdeci">segment_index&lt; char16_t const * &gt; u16csegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1049</div></div>
<div class="ttc" id="group__boundary_html_ga485e82cdd9debd15dc4fd6f57be10727"><div class="ttname"><a href="group__boundary.html#ga485e82cdd9debd15dc4fd6f57be10727">boost::locale::boundary::sboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; std::string::const_iterator &gt; sboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1055</div></div>
<div class="ttc" id="group__boundary_html_gad4785439a3f03ee455c93830b8f1366c"><div class="ttname"><a href="group__boundary.html#gad4785439a3f03ee455c93830b8f1366c">boost::locale::boundary::ssegment_index</a></div><div class="ttdeci">segment_index&lt; std::string::const_iterator &gt; ssegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1037</div></div>
<div class="ttc" id="group__boundary_html_gaacc781106af79ec27693fa8012d54cb9"><div class="ttname"><a href="group__boundary.html#gaacc781106af79ec27693fa8012d54cb9">boost::locale::boundary::u32csegment_index</a></div><div class="ttdeci">segment_index&lt; char32_t const * &gt; u32csegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1052</div></div>
<div class="ttc" id="group__boundary_html_ga579cfdfccf9c682ac4dae5fb65d4a843"><div class="ttname"><a href="group__boundary.html#ga579cfdfccf9c682ac4dae5fb65d4a843">boost::locale::boundary::wssegment_index</a></div><div class="ttdeci">segment_index&lt; std::wstring::const_iterator &gt; wssegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1038</div></div>
<div class="ttc" id="group__boundary_html_ga5f8e61b5babc3f0fa95f5fb8acae3724"><div class="ttname"><a href="group__boundary.html#ga5f8e61b5babc3f0fa95f5fb8acae3724">boost::locale::boundary::segment_index::const_iterator</a></div><div class="ttdeci">unspecified_iterator_type const_iterator</div><div class="ttdef"><b>Definition:</b> index.hpp:582</div></div>
<div class="ttc" id="group__boundary_html_gac9ce9158eb2fb030c1baf93376203d16"><div class="ttname"><a href="group__boundary.html#gac9ce9158eb2fb030c1baf93376203d16">boost::locale::boundary::boundary_point_index::const_iterator</a></div><div class="ttdeci">unspecified_iterator_type const_iterator</div><div class="ttdef"><b>Definition:</b> index.hpp:851</div></div>
<div class="ttc" id="classboost_1_1locale_1_1boundary_1_1boundary__point_html"><div class="ttname"><a href="classboost_1_1locale_1_1boundary_1_1boundary__point.html">boost::locale::boundary::boundary_point</a></div><div class="ttdoc">This class represents a boundary point in the text. </div><div class="ttdef"><b>Definition:</b> boundary_point.hpp:48</div></div>
<div class="ttc" id="group__boundary_html_ga2480236106971797460187777f2a4411"><div class="ttname"><a href="group__boundary.html#ga2480236106971797460187777f2a4411">boost::locale::boundary::segment_index::find</a></div><div class="ttdeci">iterator find(base_iterator p) const </div><div class="ttdef"><b>Definition:</b> index.hpp:713</div></div>
<div class="ttc" id="group__boundary_html_gaf74ff9c86c177efa8f74856277d659af"><div class="ttname"><a href="group__boundary.html#gaf74ff9c86c177efa8f74856277d659af">boost::locale::boundary::segment_index::begin</a></div><div class="ttdeci">iterator begin() const </div><div class="ttdef"><b>Definition:</b> index.hpp:679</div></div>
<div class="ttc" id="group__boundary_html_gad19735180401edb15acbdbbeb21e5a73"><div class="ttname"><a href="group__boundary.html#gad19735180401edb15acbdbbeb21e5a73">boost::locale::boundary::segment_index::rule</a></div><div class="ttdeci">void rule(rule_type v)</div><div class="ttdef"><b>Definition:</b> index.hpp:728</div></div>
<div class="ttc" id="group__boundary_html_ga9b926379fa2fcc7f87dc067953049d69"><div class="ttname"><a href="group__boundary.html#ga9b926379fa2fcc7f87dc067953049d69">boost::locale::boundary::boundary_point_index::boundary_point_index</a></div><div class="ttdeci">boundary_point_index(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</div><div class="ttdef"><b>Definition:</b> index.hpp:893</div></div>
<div class="ttc" id="group__boundary_html_ga1d16a23d328240464f9068cf58fb38d7"><div class="ttname"><a href="group__boundary.html#ga1d16a23d328240464f9068cf58fb38d7">boost::locale::boundary::u32cboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; char32_t const * &gt; u32cboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1070</div></div>
<div class="ttc" id="group__boundary_html_ga06ddc335e95479ec51e9b16d0f829bb3"><div class="ttname"><a href="group__boundary.html#ga06ddc335e95479ec51e9b16d0f829bb3">boost::locale::boundary::segment_index::segment_index</a></div><div class="ttdeci">segment_index(boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())</div><div class="ttdef"><b>Definition:</b> index.hpp:609</div></div>
<div class="ttc" id="group__boundary_html_ga0bb71a287afca990e85b17246568492d"><div class="ttname"><a href="group__boundary.html#ga0bb71a287afca990e85b17246568492d">boost::locale::boundary::boundary_point_index::find</a></div><div class="ttdeci">iterator find(base_iterator p) const </div><div class="ttdef"><b>Definition:</b> index.hpp:978</div></div>
<div class="ttc" id="group__boundary_html_ga31f0617de9388783205020a8679b40af"><div class="ttname"><a href="group__boundary.html#ga31f0617de9388783205020a8679b40af">boost::locale::boundary::cboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; char const * &gt; cboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1064</div></div>
<div class="ttc" id="group__boundary_html_ga1379f8968dd611be0b59d04218a1aae8"><div class="ttname"><a href="group__boundary.html#ga1379f8968dd611be0b59d04218a1aae8">boost::locale::boundary::u32sboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; std::u32string::const_iterator &gt; u32sboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1061</div></div>
<div class="ttc" id="group__boundary_html_ga1af6e72b3c384edcebc0cf319fe97efe"><div class="ttname"><a href="group__boundary.html#ga1af6e72b3c384edcebc0cf319fe97efe">boost::locale::boundary::boundary_point_index::iterator</a></div><div class="ttdeci">unspecified_iterator_type iterator</div><div class="ttdef"><b>Definition:</b> index.hpp:847</div></div>
<div class="ttc" id="group__boundary_html_ga46a5f584d5a1a43ad4bc0fff07183fcc"><div class="ttname"><a href="group__boundary.html#ga46a5f584d5a1a43ad4bc0fff07183fcc">boost::locale::boundary::segment_index::segment_index</a></div><div class="ttdeci">segment_index(boundary_type type, base_iterator begin, base_iterator end, std::locale const &amp;loc=std::locale())</div><div class="ttdef"><b>Definition:</b> index.hpp:624</div></div>
<div class="ttc" id="group__boundary_html_gace7faa10d536c85df0f2d5cac85f2bbc"><div class="ttname"><a href="group__boundary.html#gace7faa10d536c85df0f2d5cac85f2bbc">boost::locale::boundary::segment_index::full_select</a></div><div class="ttdeci">bool full_select() const </div><div class="ttdef"><b>Definition:</b> index.hpp:746</div></div>
<div class="ttc" id="group__boundary_html_gaba43501d4ed1922c9446db3bf14a918f"><div class="ttname"><a href="group__boundary.html#gaba43501d4ed1922c9446db3bf14a918f">boost::locale::boundary::u16sboundary_point_index</a></div><div class="ttdeci">boundary_point_index&lt; std::u16string::const_iterator &gt; u16sboundary_point_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1058</div></div>
<div class="ttc" id="group__boundary_html_gab3189e2eaf4386cdf37598e0ba16cfd5"><div class="ttname"><a href="group__boundary.html#gab3189e2eaf4386cdf37598e0ba16cfd5">boost::locale::boundary::boundary_point_index::base_iterator</a></div><div class="ttdeci">BaseIterator base_iterator</div><div class="ttdef"><b>Definition:</b> index.hpp:831</div></div>
<div class="ttc" id="group__boundary_html_ga8757062d2446b35675b585651c5fea9f"><div class="ttname"><a href="group__boundary.html#ga8757062d2446b35675b585651c5fea9f">boost::locale::boundary::segment_index::end</a></div><div class="ttdeci">iterator end() const </div><div class="ttdef"><b>Definition:</b> index.hpp:691</div></div>
<div class="ttc" id="group__boundary_html_ga3a7b82f5a7e29bd079dd48ca13b79f20"><div class="ttname"><a href="group__boundary.html#ga3a7b82f5a7e29bd079dd48ca13b79f20">boost::locale::boundary::u32ssegment_index</a></div><div class="ttdeci">segment_index&lt; std::u32string::const_iterator &gt; u32ssegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1043</div></div>
<div class="ttc" id="group__boundary_html_ga7b4dd7af8fad53fabd77e629da24d466"><div class="ttname"><a href="group__boundary.html#ga7b4dd7af8fad53fabd77e629da24d466">boost::locale::boundary::index_type</a></div><div class="ttdeci">std::vector&lt; break_info &gt; index_type</div><div class="ttdef"><b>Definition:</b> facets.hpp:86</div></div>
<div class="ttc" id="group__boundary_html_ga72b4ceb5bacec0eded2601c43a4d671a"><div class="ttname"><a href="group__boundary.html#ga72b4ceb5bacec0eded2601c43a4d671a">boost::locale::boundary::segment_index::rule</a></div><div class="ttdeci">rule_type rule() const </div><div class="ttdef"><b>Definition:</b> index.hpp:721</div></div>
<div class="ttc" id="group__boundary_html_ga56f42a32f0378b6e157671f9e17bd66f"><div class="ttname"><a href="group__boundary.html#ga56f42a32f0378b6e157671f9e17bd66f">boost::locale::boundary::boundary_point_index::begin</a></div><div class="ttdeci">iterator begin() const </div><div class="ttdef"><b>Definition:</b> index.hpp:946</div></div>
<div class="ttc" id="group__boundary_html_gaba6993dd50ad8cf2db8921e5cf668a69"><div class="ttname"><a href="group__boundary.html#gaba6993dd50ad8cf2db8921e5cf668a69">boost::locale::boundary::boundary_point_index::boundary_point_index</a></div><div class="ttdeci">boundary_point_index()</div><div class="ttdef"><b>Definition:</b> index.hpp:871</div></div>
<div class="ttc" id="classboost_1_1locale_1_1boundary_1_1segment__index_html"><div class="ttname"><a href="classboost_1_1locale_1_1boundary_1_1segment__index.html">boost::locale::boundary::segment_index</a></div><div class="ttdoc">This class holds an index of segments in the text range and allows to iterate over them...</div><div class="ttdef"><b>Definition:</b> index.hpp:497</div></div>
<div class="ttc" id="group__boundary_html_gacc189288792012cfdb21c07fddbadc4f"><div class="ttname"><a href="group__boundary.html#gacc189288792012cfdb21c07fddbadc4f">boost::locale::boundary::boundary_point_index::boundary_point_index</a></div><div class="ttdeci">boundary_point_index(boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &amp;loc=std::locale())</div><div class="ttdef"><b>Definition:</b> index.hpp:879</div></div>
<div class="ttc" id="group__boundary_html_ga29ce0d14d0466a28c205b5dc9d0d6a36"><div class="ttname"><a href="group__boundary.html#ga29ce0d14d0466a28c205b5dc9d0d6a36">boost::locale::boundary::wcsegment_index</a></div><div class="ttdeci">segment_index&lt; wchar_t const * &gt; wcsegment_index</div><div class="ttdoc">convenience typedef </div><div class="ttdef"><b>Definition:</b> index.hpp:1047</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<li class="footer">
&copy; Copyright 2009-2012 Artyom Beilis, Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License</a>, Version 1.0.
</li>
</ul>
</div>
</body>
</html>