<!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::collator&lt; CharType &gt; Class Template Reference</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 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><!-- 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('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> &#124;
<a href="classboost_1_1locale_1_1collator-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">boost::locale::collator&lt; CharType &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__collation.html">Collation</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<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="220,0,430,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2b74a0b9a613a4a4337632bf34644c6f"><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 class="separator:a2b74a0b9a613a4a4337632bf34644c6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a106a3fe9e068530013c428661758733d"><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 class="separator:a106a3fe9e068530013c428661758733d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classboost_1_1locale_1_1collator__base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classboost_1_1locale_1_1collator__base')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classboost_1_1locale_1_1collator__base.html">boost::locale::collator_base</a></td></tr>
<tr class="memitem:a73c12de809733273304fef7f0af28b22 inherit pub_types_classboost_1_1locale_1_1collator__base"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22">level_type</a> { <br/>
&#160;&#160;<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ae57e842f398a27ee490208f5af39675b">primary</a> = 0, 
<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22ad8e103443d69f03f00ac4b68a7181866">secondary</a> = 1, 
<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3a852752e9663b7b3340c435d0cfe36a">tertiary</a> = 2, 
<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a22ca1875fd63667fbb018df16b0aedba">quaternary</a> = 3, 
<br/>
&#160;&#160;<a class="el" href="classboost_1_1locale_1_1collator__base.html#a73c12de809733273304fef7f0af28b22a3c209055ff840e311581ab43013026f2">identical</a> = 4
<br/>
 }</td></tr>
<tr class="separator:a73c12de809733273304fef7f0af28b22 inherit pub_types_classboost_1_1locale_1_1collator__base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab90dc7bb909a71d3cd9a5e8d7b2eb80e"><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 class="separator:ab90dc7bb909a71d3cd9a5e8d7b2eb80e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc6443fb193616332ca50f207a9b189"><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 class="separator:a8dc6443fb193616332ca50f207a9b189"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89752e2023643f972b6cc8024340d5d4"><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 class="separator:a89752e2023643f972b6cc8024340d5d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ccdfec693cdc5a71b5adc1f083881bf"><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 class="separator:a9ccdfec693cdc5a71b5adc1f083881bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76000f6cf10bfe63dd7fd10652de3f5b"><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 class="separator:a76000f6cf10bfe63dd7fd10652de3f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9976b4fa0fba6c5d1a1dea9b5ef02ca"><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 class="separator:aa9976b4fa0fba6c5d1a1dea9b5ef02ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a25a8b21a756756e850a7488a54610053"><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 class="separator:a25a8b21a756756e850a7488a54610053"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada3a683bed35789e081b710a8e9a9a07"><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 class="separator:ada3a683bed35789e081b710a8e9a9a07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84b5cb6ff01cf1a1330e1556a2c674d5"><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 class="separator:a84b5cb6ff01cf1a1330e1556a2c674d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa093cd4ed0b4be4a5e38f0f04a56ac0b"><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 class="separator:aa093cd4ed0b4be4a5e38f0f04a56ac0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d04cf6c4ab84cf3eac20be402ac6bf9"><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 class="separator:a5d04cf6c4ab84cf3eac20be402ac6bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ee27b7bc751b7a7fda4de1b0d896d57"><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 class="separator:a0ee27b7bc751b7a7fda4de1b0d896d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7748d5a6ef0d4dd149096b080938d4c4"><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>
<tr class="separator:a7748d5a6ef0d4dd149096b080938d4c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">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><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a2b74a0b9a613a4a4337632bf34644c6f"></a>
<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>
<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>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a25a8b21a756756e850a7488a54610053"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>constructor of the collator object </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab90dc7bb909a71d3cd9a5e8d7b2eb80e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::compare </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::compare </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::do_compare </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::do_compare </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::do_hash </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::do_hash </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::do_transform </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::do_transform </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::hash </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::hash </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::transform </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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"><div class="line"><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)) );</div>
</div><!-- fragment --><p>Calls do_transform </p>

</div>
</div>
<a class="anchor" id="aa9976b4fa0fba6c5d1a1dea9b5ef02ca"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename CharType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <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;::transform </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</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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"><div class="line"><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)) );</div>
</div><!-- fragment --> 
</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><!-- 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>
