blob: 465c4ffffb4dc7d326656fc0fde3b0ee65fdacc5 [file] [log] [blame]
<!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"/>
<title>Boost.Locale: boost::locale::collator&lt; CharType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<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>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><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="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classboost_1_1locale_1_1collator.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> </div>
<div class="headertitle">
<div class="title">boost::locale::collator&lt; CharType &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__collation.html">Collation</a></div></div> </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="boost::locale::collator" --><!-- doxytag: inherits="boost::locale::collator_base" -->
<p>Collation facet.
<a href="classboost_1_1locale_1_1collator.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="collator_8hpp_source.html">boost/locale/collator.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for boost::locale::collator&lt; CharType &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classboost_1_1locale_1_1collator.png" usemap="#boost::locale::collator&lt; CharType &gt;_map" alt=""/>
<map id="boost::locale::collator&lt; CharType &gt;_map" name="boost::locale::collator&lt; CharType &gt;_map">
<area href="classboost_1_1locale_1_1collator__base.html" title="a base class that includes collation level flags" alt="boost::locale::collator_base" shape="rect" coords="0,0,210,24"/>
</map>
</div></div>
<p><a href="classboost_1_1locale_1_1collator-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef CharType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::basic_string<br class="typebreak"/>
&lt; CharType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b2, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e2) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a9ccdfec693cdc5a71b5adc1f083881bf">compare</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;l, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;r) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a76000f6cf10bfe63dd7fd10652de3f5b">hash</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;s) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#aa9976b4fa0fba6c5d1a1dea9b5ef02ca">transform</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;s) const </td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a25a8b21a756756e850a7488a54610053">collator</a> (size_t refs=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a> (<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b2, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e2) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a> (<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a> (<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a5d04cf6c4ab84cf3eac20be402ac6bf9">do_compare</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e1, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b2, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e2) const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a0ee27b7bc751b7a7fda4de1b0d896d57">do_transform</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator.html#a7748d5a6ef0d4dd149096b080938d4c4">do_hash</a> (<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> level, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *b, <a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *e) const =0</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename CharType&gt;<br/>
class boost::locale::collator&lt; CharType &gt;</h3>
<p>Collation facet. </p>
<p>It reimplements standard C++ std::collate, allowing usage of std::locale for direct string comparison </p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a2b74a0b9a613a4a4337632bf34644c6f"></a><!-- doxytag: member="boost::locale::collator::char_type" ref="a2b74a0b9a613a4a4337632bf34644c6f" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef CharType <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Type of the underlying character </p>
</div>
</div>
<a class="anchor" id="a106a3fe9e068530013c428661758733d"></a><!-- doxytag: member="boost::locale::collator::string_type" ref="a106a3fe9e068530013c428661758733d" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef std::basic_string&lt;CharType&gt; <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Type of string used with this facet </p>
</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a25a8b21a756756e850a7488a54610053"></a><!-- doxytag: member="boost::locale::collator::collator" ref="a25a8b21a756756e850a7488a54610053" args="(size_t refs=0)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>refs</em> = <code>0</code></td><td>)</td>
<td><code> [inline, protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>constructor of the collator object </p>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ab90dc7bb909a71d3cd9a5e8d7b2eb80e"></a><!-- doxytag: member="boost::locale::collator::compare" ref="ab90dc7bb909a71d3cd9a5e8d7b2eb80e" args="(level_type level, char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Compare two strings in rage [b1,e1), [b2,e2) according using a collation level <em>level</em>. Calls do_compare</p>
<p>Returns -1 if the first of the two strings sorts before the seconds, returns 1 if sorts after and 0 if they considered equal. </p>
</div>
</div>
<a class="anchor" id="a9ccdfec693cdc5a71b5adc1f083881bf"></a><!-- doxytag: member="boost::locale::collator::compare" ref="a9ccdfec693cdc5a71b5adc1f083881bf" args="(level_type level, string_type const &amp;l, string_type const &amp;r) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&#160;</td>
<td class="paramname"><em>l</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&#160;</td>
<td class="paramname"><em>r</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Compare two strings <em>l</em> and <em>r</em> using collation level <em>level</em> </p>
<p>Returns -1 if the first of the two strings sorts before the seconds, returns 1 if sorts after and 0 if they considered equal. </p>
</div>
</div>
<a class="anchor" id="ada3a683bed35789e081b710a8e9a9a07"></a><!-- doxytag: member="boost::locale::collator::do_compare" ref="ada3a683bed35789e081b710a8e9a9a07" args="(char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline, protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function is used to override default collation function that does not take in account collation level. Uses primary level </p>
</div>
</div>
<a class="anchor" id="a5d04cf6c4ab84cf3eac20be402ac6bf9"></a><!-- doxytag: member="boost::locale::collator::do_compare" ref="a5d04cf6c4ab84cf3eac20be402ac6bf9" args="(level_type level, char_type const *b1, char_type const *e1, char_type const *b2, char_type const *e2) const =0" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual int <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#ada3a683bed35789e081b710a8e9a9a07">do_compare</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [protected, pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Actual function that performs comparison between the strings. For details see compare member function. Can be overridden. </p>
</div>
</div>
<a class="anchor" id="aa093cd4ed0b4be4a5e38f0f04a56ac0b"></a><!-- doxytag: member="boost::locale::collator::do_hash" ref="aa093cd4ed0b4be4a5e38f0f04a56ac0b" args="(char_type const *b, char_type const *e) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline, protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function is used to override default collation function that does not take in account collation level. Uses primary level </p>
</div>
</div>
<a class="anchor" id="a7748d5a6ef0d4dd149096b080938d4c4"></a><!-- doxytag: member="boost::locale::collator::do_hash" ref="a7748d5a6ef0d4dd149096b080938d4c4" args="(level_type level, char_type const *b, char_type const *e) const =0" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#aa093cd4ed0b4be4a5e38f0f04a56ac0b">do_hash</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [protected, pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Actual function that calculates hash. For details see hash member function. Can be overridden. </p>
</div>
</div>
<a class="anchor" id="a84b5cb6ff01cf1a1330e1556a2c674d5"></a><!-- doxytag: member="boost::locale::collator::do_transform" ref="a84b5cb6ff01cf1a1330e1556a2c674d5" args="(char_type const *b, char_type const *e) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline, protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function is used to override default collation function that does not take in account collation level. Uses primary level </p>
</div>
</div>
<a class="anchor" id="a0ee27b7bc751b7a7fda4de1b0d896d57"></a><!-- doxytag: member="boost::locale::collator::do_transform" ref="a0ee27b7bc751b7a7fda4de1b0d896d57" args="(level_type level, char_type const *b, char_type const *e) const =0" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a84b5cb6ff01cf1a1330e1556a2c674d5">do_transform</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [protected, pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Actual function that performs transformation. For details see transform member function. Can be overridden. </p>
</div>
</div>
<a class="anchor" id="a89752e2023643f972b6cc8024340d5d4"></a><!-- doxytag: member="boost::locale::collator::hash" ref="a89752e2023643f972b6cc8024340d5d4" args="(level_type level, char_type const *b, char_type const *e) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Calculate a hash of a text in range [b,e). The value can be used for collation sensitive string comparison.</p>
<p>If compare(level,b1,e1,b2,e2) == 0 then hash(level,b1,e1) == hash(level,b2,e2)</p>
<p>Calls do_hash </p>
</div>
</div>
<a class="anchor" id="a76000f6cf10bfe63dd7fd10652de3f5b"></a><!-- doxytag: member="boost::locale::collator::hash" ref="a76000f6cf10bfe63dd7fd10652de3f5b" args="(level_type level, string_type const &amp;s) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname">long <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&#160;</td>
<td class="paramname"><em>s</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Calculate a hash that can be used for collation sensitive string comparison of a string <em>s</em> </p>
<p>If compare(level,s1,s2) == 0 then hash(level,s1) == hash(level,s2) </p>
</div>
</div>
<a class="anchor" id="a8dc6443fb193616332ca50f207a9b189"></a><!-- doxytag: member="boost::locale::collator::transform" ref="a8dc6443fb193616332ca50f207a9b189" args="(level_type level, char_type const *b, char_type const *e) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a2b74a0b9a613a4a4337632bf34644c6f">char_type</a> const *&#160;</td>
<td class="paramname"><em>e</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Create a binary string that can be compared to other in order to get collation order. The string is created for text in range [b,e). It is useful for collation of multiple strings for text.</p>
<p>The transformation follows these rules: </p>
<div class="fragment"><pre class="fragment"> <a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(level,b1,e1,b2,e2) == sign( <a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,b1,e1).<a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(<a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,b2,e2)) );
</pre></div><p>Calls do_transform </p>
</div>
</div>
<a class="anchor" id="aa9976b4fa0fba6c5d1a1dea9b5ef02ca"></a><!-- doxytag: member="boost::locale::collator::transform" ref="aa9976b4fa0fba6c5d1a1dea9b5ef02ca" args="(level_type level, string_type const &amp;s) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> <a class="el" href="classboost_1_1locale_1_1collator.html">boost::locale::collator</a>&lt; CharType &gt;::<a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a>&#160;</td>
<td class="paramname"><em>level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classboost_1_1locale_1_1collator.html#a106a3fe9e068530013c428661758733d">string_type</a> const &amp;&#160;</td>
<td class="paramname"><em>s</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const<code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Create a binary string from string <em>s</em>, that can be compared to other, useful for collation of multiple strings.</p>
<p>The transformation follows these rules: </p>
<div class="fragment"><pre class="fragment"> <a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(level,s1,s2) == sign( <a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,s1).<a class="code" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>(<a class="code" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a>(level,s2)) );
</pre></div>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>boost/locale/<a class="el" href="collator_8hpp_source.html">collator.hpp</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>boost</b> </li>
<li class="navelem"><a class="el" href="namespaceboost_1_1locale.html">locale</a> </li>
<li class="navelem"><a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> </li>
<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>