UNPKG

boost-react-native-bundle

Version:

Boost library as in https://sourceforge.net/projects/boost/files/boost/1.57.0/

111 lines (93 loc) 5.74 kB
<!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: Collation</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><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> <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('collation.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">Collation </div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><p>Boost.Locale provides a <a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> class, derived from <code>std::collate</code>, that adds support for primary, secondary, tertiary, quaternary and identical comparison levels. They can be approximately defined as:</p> <ol type="1"> <li>Primary -- ignore accents and character case, comparing base letters only. For example "facade" and "Façade" are the same.</li> <li>Secondary -- ignore character case but consider accents. "facade" and "façade" are different but "Façade" and "façade" are the same.</li> <li>Tertiary -- consider both case and accents: "Façade" and "façade" are different. Ignore punctuation.</li> <li>Quaternary -- consider all case, accents, and punctuation. The words must be identical in terms of Unicode representation.</li> <li>Identical -- as quaternary, but compare code points as well.</li> </ol> <p>There are two ways of using the <a class="el" href="classboost_1_1locale_1_1collator.html">collator</a> facet: directly, by calling its member functions <a class="el" href="classboost_1_1locale_1_1collator.html#ab90dc7bb909a71d3cd9a5e8d7b2eb80e">compare</a>, <a class="el" href="classboost_1_1locale_1_1collator.html#a8dc6443fb193616332ca50f207a9b189">transform</a> and <a class="el" href="classboost_1_1locale_1_1collator.html#a89752e2023643f972b6cc8024340d5d4">hash</a>, or indirectly by using the <a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a> template class in STL algorithms.</p> <p>For example:</p> <div class="fragment"><pre class="fragment"> wstring a=L<span class="stringliteral">&quot;Façade&quot;</span>, b=L<span class="stringliteral">&quot;facade&quot;</span>; <span class="keywordtype">bool</span> eq = 0 == use_facet&lt;collator&lt;wchar_t&gt; &gt;(loc).compare(collator_base::secondary,a,b); wcout &lt;&lt; a &lt;&lt;L<span class="stringliteral">&quot; and &quot;</span>&lt;&lt;b&lt;&lt;L<span class="stringliteral">&quot; are &quot;</span> &lt;&lt; (eq ? L<span class="stringliteral">&quot;identical&quot;</span> : L<span class="stringliteral">&quot;different&quot;</span>)&lt;&lt;endl; </pre></div><p><code>std::locale</code> is designed to be useful as a comparison class in STL collections and algorithms. To get similar functionality with comparison levels, you must use the comparator class.</p> <div class="fragment"><pre class="fragment"> std::map&lt;std::string,std::string,comparator&lt;char,collator_base::secondary&gt; &gt; strings; <span class="comment">// Now strings uses the default system locale for string comparison</span> </pre></div><p>You can also set a specific locale or level when creating and using the <a class="el" href="structboost_1_1locale_1_1comparator.html">comparator</a> class:</p> <div class="fragment"><pre class="fragment"> comparator&lt;char&gt; comp(some_locale,some_level); std::map&lt;std::string,std::string,comparator&lt;char&gt; &gt; strings(comp); </pre></div> </div></div><!-- contents --> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="index.html">Boost.Locale</a> </li> <li class="navelem"><a class="el" href="using_boost_locale.html">Using Boost.Locale</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>