• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Struct template cpp_regex_traits</title>
6<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../../xpressive/reference.html#header.boost.xpressive.xpressive_fwd_hpp" title="Header &lt;boost/xpressive/xpressive_fwd.hpp&gt;">
10<link rel="prev" href="compiler_traits.html" title="Struct template compiler_traits">
11<link rel="next" href="has_fold_case.html" title="Struct template has_fold_case">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
16<td align="center"><a href="../../../../index.html">Home</a></td>
17<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="compiler_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../xpressive/reference.html#header.boost.xpressive.xpressive_fwd_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="has_fold_case.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="refentry">
27<a name="boost.xpressive.cpp_regex_traits"></a><div class="titlepage"></div>
28<div class="refnamediv">
29<h2><span class="refentrytitle">Struct template cpp_regex_traits</span></h2>
30<p>boost::xpressive::cpp_regex_traits — Encapsaulates a <code class="computeroutput">std::locale</code> for use by the <code class="computeroutput"><a class="link" href="basic_regex.html" title="Struct template basic_regex">basic_regex</a>&lt;&gt;</code> class template. </p>
31</div>
32<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
33<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../xpressive/reference.html#header.boost.xpressive.xpressive_fwd_hpp" title="Header &lt;boost/xpressive/xpressive_fwd.hpp&gt;">boost/xpressive/xpressive_fwd.hpp</a>&gt;
34
35</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Char<span class="special">&gt;</span>
36<span class="keyword">struct</span> <a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a> <span class="special">{</span>
37  <span class="comment">// <a class="link" href="cpp_regex_traits.html#boost.xpressive.cpp_regex_traitsconstruct-copy-destruct">construct/copy/destruct</a></span>
38  <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_4-bb"><span class="identifier">cpp_regex_traits</span></a><span class="special">(</span><span class="identifier">locale_type</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">locale_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
39
40  <span class="comment">// <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3-bb">public member functions</a></span>
41  <span class="keyword">bool</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_1-bb"><span class="keyword">operator</span><span class="special">==</span></a><span class="special">(</span><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a><span class="special">&lt;</span> <span class="identifier">char_type</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
42  <span class="keyword">bool</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_2-bb"><span class="keyword">operator</span> <span class="special">!=</span></a><span class="special">(</span><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a><span class="special">&lt;</span> <span class="identifier">char_type</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
43  <span class="identifier">char_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_3-bb"><span class="identifier">widen</span></a><span class="special">(</span><span class="keyword">char</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
44  <span class="identifier">char_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_4-bb"><span class="identifier">translate_nocase</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
45  <span class="identifier">char_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_5-bb"><span class="identifier">tolower</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
46  <span class="identifier">char_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_6-bb"><span class="identifier">toupper</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
47  <span class="identifier">string_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_7-bb"><span class="identifier">fold_case</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
48  <span class="keyword">bool</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_8-bb"><span class="identifier">in_range_nocase</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">char_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
49  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIter<span class="special">&gt;</span>
50    <span class="identifier">string_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_9-bb"><span class="identifier">transform_primary</span></a><span class="special">(</span><span class="identifier">FwdIter</span><span class="special">,</span> <span class="identifier">FwdIter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
51  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIter<span class="special">&gt;</span>
52    <span class="identifier">string_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_10-bb"><span class="identifier">lookup_collatename</span></a><span class="special">(</span><span class="identifier">FwdIter</span><span class="special">,</span> <span class="identifier">FwdIter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
53  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIter<span class="special">&gt;</span>
54    <span class="identifier">char_class_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_11-bb"><span class="identifier">lookup_classname</span></a><span class="special">(</span><span class="identifier">FwdIter</span><span class="special">,</span> <span class="identifier">FwdIter</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
55  <span class="keyword">bool</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_12-bb"><span class="identifier">isctype</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">char_class_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
56  <span class="keyword">int</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_13-bb"><span class="identifier">value</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
57  <span class="identifier">locale_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_14-bb"><span class="identifier">imbue</span></a><span class="special">(</span><span class="identifier">locale_type</span><span class="special">)</span><span class="special">;</span>
58  <span class="identifier">locale_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_15-bb"><span class="identifier">getloc</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
59  <span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_16-bb"><span class="identifier">hash</span></a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">)</span><span class="special">;</span>
60  <span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_17-bb"><span class="identifier">hash</span></a><span class="special">(</span><span class="keyword">char</span><span class="special">)</span><span class="special">;</span>
61  <span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_18-bb"><span class="identifier">hash</span></a><span class="special">(</span><span class="keyword">signed</span> <span class="keyword">char</span><span class="special">)</span><span class="special">;</span>
62  <span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_3_19-bb"><span class="identifier">hash</span></a><span class="special">(</span><span class="keyword">wchar_t</span><span class="special">)</span><span class="special">;</span>
63
64  <span class="comment">// <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_5-bb">public static functions</a></span>
65  <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_5_1-bb"><span class="identifier">hash</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">)</span><span class="special">;</span>
66  <span class="keyword">static</span> <span class="identifier">char_type</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_5_2-bb"><span class="identifier">translate</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">)</span><span class="special">;</span>
67  <span class="keyword">static</span> <span class="keyword">bool</span> <a class="link" href="cpp_regex_traits.html#id-1_3_47_5_18_2_1_4_5_3-bb"><span class="identifier">in_range</span></a><span class="special">(</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">char_type</span><span class="special">)</span><span class="special">;</span>
68<span class="special">}</span><span class="special">;</span></pre></div>
69<div class="refsect1">
70<a name="id-1.3.47.5.19.14.4"></a><h2>Description</h2>
71<div class="refsect2">
72<a name="id-1.3.47.5.19.14.4.2"></a><h3>
73<a name="boost.xpressive.cpp_regex_traitsconstruct-copy-destruct"></a><code class="computeroutput">cpp_regex_traits</code>
74        public
75       construct/copy/destruct</h3>
76<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
77<pre class="literallayout"><a name="id-1_3_47_5_18_2_1_4_4-bb"></a><span class="identifier">cpp_regex_traits</span><span class="special">(</span><span class="identifier">locale_type</span> <span class="keyword">const</span> <span class="special">&amp;</span> loc <span class="special">=</span> <span class="identifier">locale_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>
78<p>Initialize a <code class="computeroutput"><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a></code> object to use the specified std::locale, or the global std::locale if none is specified. </p>
79</li></ol></div>
80</div>
81<div class="refsect2">
82<a name="id-1.3.47.5.19.14.4.3"></a><h3>
83<a name="id-1_3_47_5_18_2_1_4_3-bb"></a><code class="computeroutput">cpp_regex_traits</code> public member functions</h3>
84<div class="orderedlist"><ol class="orderedlist" type="1">
85<li class="listitem">
86<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_47_5_18_2_1_4_3_1-bb"></a><span class="keyword">operator</span><span class="special">==</span><span class="special">(</span><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a><span class="special">&lt;</span> <span class="identifier">char_type</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> that<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
87<p>Checks two <code class="computeroutput"><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a></code> objects for equality</p>
88<p>
89</p>
90<div class="variablelist"><table border="0" class="variablelist compact">
91<colgroup>
92<col align="left" valign="top">
93<col>
94</colgroup>
95<tbody><tr>
96<td><p><span class="term">Returns:</span></p></td>
97<td><p>this-&gt;getloc() == that.getloc(). </p></td>
98</tr></tbody>
99</table></div>
100</li>
101<li class="listitem">
102<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_47_5_18_2_1_4_3_2-bb"></a><span class="keyword">operator</span> <span class="special">!=</span><span class="special">(</span><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a><span class="special">&lt;</span> <span class="identifier">char_type</span> <span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> that<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
103<p>Checks two <code class="computeroutput"><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a></code> objects for inequality</p>
104<p>
105</p>
106<div class="variablelist"><table border="0" class="variablelist compact">
107<colgroup>
108<col align="left" valign="top">
109<col>
110</colgroup>
111<tbody><tr>
112<td><p><span class="term">Returns:</span></p></td>
113<td><p>this-&gt;getloc() != that.getloc(). </p></td>
114</tr></tbody>
115</table></div>
116</li>
117<li class="listitem">
118<pre class="literallayout"><span class="identifier">char_type</span> <a name="id-1_3_47_5_18_2_1_4_3_3-bb"></a><span class="identifier">widen</span><span class="special">(</span><span class="keyword">char</span> ch<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
119<p>Convert a char to a Char</p>
120<p>
121
122</p>
123<div class="variablelist"><table border="0" class="variablelist compact">
124<colgroup>
125<col align="left" valign="top">
126<col>
127</colgroup>
128<tbody>
129<tr>
130<td><p><span class="term">Parameters:</span></p></td>
131<td><div class="variablelist"><table border="0" class="variablelist compact">
132<colgroup>
133<col align="left" valign="top">
134<col>
135</colgroup>
136<tbody><tr>
137<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
138<td><p>The source character. </p></td>
139</tr></tbody>
140</table></div></td>
141</tr>
142<tr>
143<td><p><span class="term">Returns:</span></p></td>
144<td><p>std::use_facet&lt;std::ctype&lt;char_type&gt; &gt;(this-&gt;getloc()).widen(ch). </p></td>
145</tr>
146</tbody>
147</table></div>
148</li>
149<li class="listitem">
150<pre class="literallayout"><span class="identifier">char_type</span> <a name="id-1_3_47_5_18_2_1_4_3_4-bb"></a><span class="identifier">translate_nocase</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
151<p>Converts a character to lower-case using the internally-stored std::locale.</p>
152<p>
153
154</p>
155<div class="variablelist"><table border="0" class="variablelist compact">
156<colgroup>
157<col align="left" valign="top">
158<col>
159</colgroup>
160<tbody>
161<tr>
162<td><p><span class="term">Parameters:</span></p></td>
163<td><div class="variablelist"><table border="0" class="variablelist compact">
164<colgroup>
165<col align="left" valign="top">
166<col>
167</colgroup>
168<tbody><tr>
169<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
170<td><p>The source character. </p></td>
171</tr></tbody>
172</table></div></td>
173</tr>
174<tr>
175<td><p><span class="term">Returns:</span></p></td>
176<td><p>std::tolower(ch, this-&gt;getloc()). </p></td>
177</tr>
178</tbody>
179</table></div>
180</li>
181<li class="listitem">
182<pre class="literallayout"><span class="identifier">char_type</span> <a name="id-1_3_47_5_18_2_1_4_3_5-bb"></a><span class="identifier">tolower</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
183<p>Converts a character to lower-case using the internally-stored std::locale.</p>
184<p>
185
186</p>
187<div class="variablelist"><table border="0" class="variablelist compact">
188<colgroup>
189<col align="left" valign="top">
190<col>
191</colgroup>
192<tbody>
193<tr>
194<td><p><span class="term">Parameters:</span></p></td>
195<td><div class="variablelist"><table border="0" class="variablelist compact">
196<colgroup>
197<col align="left" valign="top">
198<col>
199</colgroup>
200<tbody><tr>
201<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
202<td><p>The source character. </p></td>
203</tr></tbody>
204</table></div></td>
205</tr>
206<tr>
207<td><p><span class="term">Returns:</span></p></td>
208<td><p>std::tolower(ch, this-&gt;getloc()). </p></td>
209</tr>
210</tbody>
211</table></div>
212</li>
213<li class="listitem">
214<pre class="literallayout"><span class="identifier">char_type</span> <a name="id-1_3_47_5_18_2_1_4_3_6-bb"></a><span class="identifier">toupper</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
215<p>Converts a character to upper-case using the internally-stored std::locale.</p>
216<p>
217
218</p>
219<div class="variablelist"><table border="0" class="variablelist compact">
220<colgroup>
221<col align="left" valign="top">
222<col>
223</colgroup>
224<tbody>
225<tr>
226<td><p><span class="term">Parameters:</span></p></td>
227<td><div class="variablelist"><table border="0" class="variablelist compact">
228<colgroup>
229<col align="left" valign="top">
230<col>
231</colgroup>
232<tbody><tr>
233<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
234<td><p>The source character. </p></td>
235</tr></tbody>
236</table></div></td>
237</tr>
238<tr>
239<td><p><span class="term">Returns:</span></p></td>
240<td><p>std::toupper(ch, this-&gt;getloc()). </p></td>
241</tr>
242</tbody>
243</table></div>
244</li>
245<li class="listitem">
246<pre class="literallayout"><span class="identifier">string_type</span> <a name="id-1_3_47_5_18_2_1_4_3_7-bb"></a><span class="identifier">fold_case</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
247<p>Returns a <code class="computeroutput">string_type</code> containing all the characters that compare equal disregrarding case to the one passed in. This function can only be called if <code class="computeroutput"><code class="computeroutput"><a class="link" href="has_fold_case.html" title="Struct template has_fold_case">has_fold_case</a></code>&lt;<code class="computeroutput"><a class="link" href="cpp_regex_traits.html" title="Struct template cpp_regex_traits">cpp_regex_traits</a></code>&lt;Char&gt; &gt;::value</code> is <code class="computeroutput">true</code>.</p>
248<p>
249
250</p>
251<div class="variablelist"><table border="0" class="variablelist compact">
252<colgroup>
253<col align="left" valign="top">
254<col>
255</colgroup>
256<tbody>
257<tr>
258<td><p><span class="term">Parameters:</span></p></td>
259<td><div class="variablelist"><table border="0" class="variablelist compact">
260<colgroup>
261<col align="left" valign="top">
262<col>
263</colgroup>
264<tbody><tr>
265<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
266<td><p>The source character. </p></td>
267</tr></tbody>
268</table></div></td>
269</tr>
270<tr>
271<td><p><span class="term">Returns:</span></p></td>
272<td><p><code class="computeroutput">string_type</code> containing all chars which are equal to <code class="computeroutput">ch</code> when disregarding case </p></td>
273</tr>
274</tbody>
275</table></div>
276</li>
277<li class="listitem">
278<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_47_5_18_2_1_4_3_8-bb"></a><span class="identifier">in_range_nocase</span><span class="special">(</span><span class="identifier">char_type</span> first<span class="special">,</span> <span class="identifier">char_type</span> last<span class="special">,</span> <span class="identifier">char_type</span> ch<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
279<p>Checks to see if a character is within a character range, irregardless of case.</p>
280<p>
281
282</p>
283<div class="note"><table border="0" summary="Note">
284<tr>
285<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
286<th align="left">Note</th>
287</tr>
288<tr><td align="left" valign="top"><p>The default implementation doesn't do proper Unicode case folding, but this is the best we can do with the standard ctype facet. </p></td></tr>
289</table></div>
290<p>
291</p>
292<div class="variablelist"><table border="0" class="variablelist compact">
293<colgroup>
294<col align="left" valign="top">
295<col>
296</colgroup>
297<tbody>
298<tr>
299<td><p><span class="term">Parameters:</span></p></td>
300<td><div class="variablelist"><table border="0" class="variablelist compact">
301<colgroup>
302<col align="left" valign="top">
303<col>
304</colgroup>
305<tbody>
306<tr>
307<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
308<td><p>The source character. </p></td>
309</tr>
310<tr>
311<td><p><span class="term"><code class="computeroutput">first</code></span></p></td>
312<td><p>The bottom of the range, inclusive. </p></td>
313</tr>
314<tr>
315<td><p><span class="term"><code class="computeroutput">last</code></span></p></td>
316<td><p>The top of the range, inclusive. </p></td>
317</tr>
318</tbody>
319</table></div></td>
320</tr>
321<tr>
322<td><p><span class="term">Returns:</span></p></td>
323<td><p>in_range(first, last, ch) || in_range(first, last, tolower(ch, this-&gt;getloc())) || in_range(first, last, toupper(ch, this-&gt;getloc())) </p></td>
324</tr>
325</tbody>
326</table></div>
327</li>
328<li class="listitem">
329<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIter<span class="special">&gt;</span>
330  <span class="identifier">string_type</span> <a name="id-1_3_47_5_18_2_1_4_3_9-bb"></a><span class="identifier">transform_primary</span><span class="special">(</span><span class="identifier">FwdIter</span><span class="special">,</span> <span class="identifier">FwdIter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
331<p>Returns a sort key for the character sequence designated by the iterator range [F1, F2) such that if the character sequence [G1, G2) sorts before the character sequence [H1, H2) when character case is not considered then v.transform_primary(G1, G2) &lt; v.transform_primary(H1, H2).</p>
332<div class="note"><table border="0" summary="Note">
333<tr>
334<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
335<th align="left">Note</th>
336</tr>
337<tr><td align="left" valign="top"><p>Not currently used </p></td></tr>
338</table></div>
339<p>
340</p>
341</li>
342<li class="listitem">
343<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIter<span class="special">&gt;</span>
344  <span class="identifier">string_type</span> <a name="id-1_3_47_5_18_2_1_4_3_10-bb"></a><span class="identifier">lookup_collatename</span><span class="special">(</span><span class="identifier">FwdIter</span><span class="special">,</span> <span class="identifier">FwdIter</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
345<p>Returns a sequence of characters that represents the collating element consisting of the character sequence designated by the iterator range [F1, F2). Returns an empty string if the character sequence is not a valid collating element.</p>
346<div class="note"><table border="0" summary="Note">
347<tr>
348<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
349<th align="left">Note</th>
350</tr>
351<tr><td align="left" valign="top"><p>Not currently used </p></td></tr>
352</table></div>
353<p>
354</p>
355</li>
356<li class="listitem">
357<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIter<span class="special">&gt;</span>
358  <span class="identifier">char_class_type</span>
359  <a name="id-1_3_47_5_18_2_1_4_3_11-bb"></a><span class="identifier">lookup_classname</span><span class="special">(</span><span class="identifier">FwdIter</span> begin<span class="special">,</span> <span class="identifier">FwdIter</span> end<span class="special">,</span> <span class="keyword">bool</span> icase<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
360<p>For the character class name represented by the specified character sequence, return the corresponding bitmask representation.</p>
361<p>
362
363</p>
364<div class="variablelist"><table border="0" class="variablelist compact">
365<colgroup>
366<col align="left" valign="top">
367<col>
368</colgroup>
369<tbody>
370<tr>
371<td><p><span class="term">Parameters:</span></p></td>
372<td><div class="variablelist"><table border="0" class="variablelist compact">
373<colgroup>
374<col align="left" valign="top">
375<col>
376</colgroup>
377<tbody>
378<tr>
379<td><p><span class="term"><code class="computeroutput">begin</code></span></p></td>
380<td><p>A forward iterator to the start of the character sequence representing the name of the character class. </p></td>
381</tr>
382<tr>
383<td><p><span class="term"><code class="computeroutput">end</code></span></p></td>
384<td><p>The end of the character sequence. </p></td>
385</tr>
386<tr>
387<td><p><span class="term"><code class="computeroutput">icase</code></span></p></td>
388<td><p>Specifies whether the returned bitmask should represent the case-insensitive version of the character class. </p></td>
389</tr>
390</tbody>
391</table></div></td>
392</tr>
393<tr>
394<td><p><span class="term">Returns:</span></p></td>
395<td><p>A bitmask representing the character class. </p></td>
396</tr>
397</tbody>
398</table></div>
399</li>
400<li class="listitem">
401<pre class="literallayout"><span class="keyword">bool</span> <a name="id-1_3_47_5_18_2_1_4_3_12-bb"></a><span class="identifier">isctype</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">,</span> <span class="identifier">char_class_type</span> mask<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
402<p>Tests a character against a character class bitmask.</p>
403<p>
404
405
406</p>
407<div class="variablelist"><table border="0" class="variablelist compact">
408<colgroup>
409<col align="left" valign="top">
410<col>
411</colgroup>
412<tbody>
413<tr>
414<td><p><span class="term">Parameters:</span></p></td>
415<td><div class="variablelist"><table border="0" class="variablelist compact">
416<colgroup>
417<col align="left" valign="top">
418<col>
419</colgroup>
420<tbody>
421<tr>
422<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
423<td><p>The character to test. </p></td>
424</tr>
425<tr>
426<td><p><span class="term"><code class="computeroutput">mask</code></span></p></td>
427<td><p>The character class bitmask against which to test. </p></td>
428</tr>
429</tbody>
430</table></div></td>
431</tr>
432<tr>
433<td><p><span class="term">Requires:</span></p></td>
434<td><p>mask is a bitmask returned by lookup_classname, or is several such masks bit-or'ed together. </p></td>
435</tr>
436<tr>
437<td><p><span class="term">Returns:</span></p></td>
438<td><p>true if the character is a member of any of the specified character classes, false otherwise. </p></td>
439</tr>
440</tbody>
441</table></div>
442</li>
443<li class="listitem">
444<pre class="literallayout"><span class="keyword">int</span> <a name="id-1_3_47_5_18_2_1_4_3_13-bb"></a><span class="identifier">value</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">,</span> <span class="keyword">int</span> radix<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
445<p>Convert a digit character into the integer it represents.</p>
446<p>
447
448
449</p>
450<div class="variablelist"><table border="0" class="variablelist compact">
451<colgroup>
452<col align="left" valign="top">
453<col>
454</colgroup>
455<tbody>
456<tr>
457<td><p><span class="term">Parameters:</span></p></td>
458<td><div class="variablelist"><table border="0" class="variablelist compact">
459<colgroup>
460<col align="left" valign="top">
461<col>
462</colgroup>
463<tbody>
464<tr>
465<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
466<td><p>The digit character. </p></td>
467</tr>
468<tr>
469<td><p><span class="term"><code class="computeroutput">radix</code></span></p></td>
470<td><p>The radix to use for the conversion. </p></td>
471</tr>
472</tbody>
473</table></div></td>
474</tr>
475<tr>
476<td><p><span class="term">Requires:</span></p></td>
477<td><p>radix is one of 8, 10, or 16. </p></td>
478</tr>
479<tr>
480<td><p><span class="term">Returns:</span></p></td>
481<td><p>-1 if ch is not a digit character, the integer value of the character otherwise. The conversion is performed by imbueing a std::stringstream with this-&gt;getloc(); setting the radix to one of oct, hex or dec; inserting ch into the stream; and extracting an int. </p></td>
482</tr>
483</tbody>
484</table></div>
485</li>
486<li class="listitem">
487<pre class="literallayout"><span class="identifier">locale_type</span> <a name="id-1_3_47_5_18_2_1_4_3_14-bb"></a><span class="identifier">imbue</span><span class="special">(</span><span class="identifier">locale_type</span> loc<span class="special">)</span><span class="special">;</span></pre>
488<p>Imbues *this with loc</p>
489<p>
490
491</p>
492<div class="variablelist"><table border="0" class="variablelist compact">
493<colgroup>
494<col align="left" valign="top">
495<col>
496</colgroup>
497<tbody>
498<tr>
499<td><p><span class="term">Parameters:</span></p></td>
500<td><div class="variablelist"><table border="0" class="variablelist compact">
501<colgroup>
502<col align="left" valign="top">
503<col>
504</colgroup>
505<tbody><tr>
506<td><p><span class="term"><code class="computeroutput">loc</code></span></p></td>
507<td><p>A std::locale. </p></td>
508</tr></tbody>
509</table></div></td>
510</tr>
511<tr>
512<td><p><span class="term">Returns:</span></p></td>
513<td><p>the previous std::locale used by *this. </p></td>
514</tr>
515</tbody>
516</table></div>
517</li>
518<li class="listitem">
519<pre class="literallayout"><span class="identifier">locale_type</span> <a name="id-1_3_47_5_18_2_1_4_3_15-bb"></a><span class="identifier">getloc</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
520<p>Returns the current std::locale used by *this. </p>
521</li>
522<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a name="id-1_3_47_5_18_2_1_4_3_16-bb"></a><span class="identifier">hash</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">char</span> ch<span class="special">)</span><span class="special">;</span></pre></li>
523<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a name="id-1_3_47_5_18_2_1_4_3_17-bb"></a><span class="identifier">hash</span><span class="special">(</span><span class="keyword">char</span> ch<span class="special">)</span><span class="special">;</span></pre></li>
524<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a name="id-1_3_47_5_18_2_1_4_3_18-bb"></a><span class="identifier">hash</span><span class="special">(</span><span class="keyword">signed</span> <span class="keyword">char</span> ch<span class="special">)</span><span class="special">;</span></pre></li>
525<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="special">&gt;</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a name="id-1_3_47_5_18_2_1_4_3_19-bb"></a><span class="identifier">hash</span><span class="special">(</span><span class="keyword">wchar_t</span> ch<span class="special">)</span><span class="special">;</span></pre></li>
526</ol></div>
527</div>
528<div class="refsect2">
529<a name="id-1.3.47.5.19.14.4.4"></a><h3>
530<a name="id-1_3_47_5_18_2_1_4_5-bb"></a><code class="computeroutput">cpp_regex_traits</code> public static functions</h3>
531<div class="orderedlist"><ol class="orderedlist" type="1">
532<li class="listitem">
533<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <a name="id-1_3_47_5_18_2_1_4_5_1-bb"></a><span class="identifier">hash</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">)</span><span class="special">;</span></pre>
534<p>Returns a hash value for a Char in the range [0, UCHAR_MAX]</p>
535<p>
536
537</p>
538<div class="variablelist"><table border="0" class="variablelist compact">
539<colgroup>
540<col align="left" valign="top">
541<col>
542</colgroup>
543<tbody>
544<tr>
545<td><p><span class="term">Parameters:</span></p></td>
546<td><div class="variablelist"><table border="0" class="variablelist compact">
547<colgroup>
548<col align="left" valign="top">
549<col>
550</colgroup>
551<tbody><tr>
552<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
553<td><p>The source character. </p></td>
554</tr></tbody>
555</table></div></td>
556</tr>
557<tr>
558<td><p><span class="term">Returns:</span></p></td>
559<td><p>a value between 0 and UCHAR_MAX, inclusive. </p></td>
560</tr>
561</tbody>
562</table></div>
563</li>
564<li class="listitem">
565<pre class="literallayout"><span class="keyword">static</span> <span class="identifier">char_type</span> <a name="id-1_3_47_5_18_2_1_4_5_2-bb"></a><span class="identifier">translate</span><span class="special">(</span><span class="identifier">char_type</span> ch<span class="special">)</span><span class="special">;</span></pre>
566<p>No-op</p>
567<p>
568
569</p>
570<div class="variablelist"><table border="0" class="variablelist compact">
571<colgroup>
572<col align="left" valign="top">
573<col>
574</colgroup>
575<tbody>
576<tr>
577<td><p><span class="term">Parameters:</span></p></td>
578<td><div class="variablelist"><table border="0" class="variablelist compact">
579<colgroup>
580<col align="left" valign="top">
581<col>
582</colgroup>
583<tbody><tr>
584<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
585<td><p>The source character. </p></td>
586</tr></tbody>
587</table></div></td>
588</tr>
589<tr>
590<td><p><span class="term">Returns:</span></p></td>
591<td><p>ch </p></td>
592</tr>
593</tbody>
594</table></div>
595</li>
596<li class="listitem">
597<pre class="literallayout"><span class="keyword">static</span> <span class="keyword">bool</span> <a name="id-1_3_47_5_18_2_1_4_5_3-bb"></a><span class="identifier">in_range</span><span class="special">(</span><span class="identifier">char_type</span> first<span class="special">,</span> <span class="identifier">char_type</span> last<span class="special">,</span> <span class="identifier">char_type</span> ch<span class="special">)</span><span class="special">;</span></pre>
598<p>Checks to see if a character is within a character range.</p>
599<p>
600
601</p>
602<div class="variablelist"><table border="0" class="variablelist compact">
603<colgroup>
604<col align="left" valign="top">
605<col>
606</colgroup>
607<tbody>
608<tr>
609<td><p><span class="term">Parameters:</span></p></td>
610<td><div class="variablelist"><table border="0" class="variablelist compact">
611<colgroup>
612<col align="left" valign="top">
613<col>
614</colgroup>
615<tbody>
616<tr>
617<td><p><span class="term"><code class="computeroutput">ch</code></span></p></td>
618<td><p>The source character. </p></td>
619</tr>
620<tr>
621<td><p><span class="term"><code class="computeroutput">first</code></span></p></td>
622<td><p>The bottom of the range, inclusive. </p></td>
623</tr>
624<tr>
625<td><p><span class="term"><code class="computeroutput">last</code></span></p></td>
626<td><p>The top of the range, inclusive. </p></td>
627</tr>
628</tbody>
629</table></div></td>
630</tr>
631<tr>
632<td><p><span class="term">Returns:</span></p></td>
633<td><p>first &lt;= ch &amp;&amp; ch &lt;= last. </p></td>
634</tr>
635</tbody>
636</table></div>
637</li>
638</ol></div>
639</div>
640</div>
641</div>
642<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
643<td align="left"></td>
644<td align="right"><div class="copyright-footer">Copyright © 2007 Eric Niebler<p>
645        Distributed under the Boost Software License, Version 1.0. (See accompanying
646        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
647      </p>
648</div></td>
649</tr></table>
650<hr>
651<div class="spirit-nav">
652<a accesskey="p" href="compiler_traits.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../xpressive/reference.html#header.boost.xpressive.xpressive_fwd_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="has_fold_case.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
653</div>
654</body>
655</html>
656