3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Unsigned Integer Parsers (uint_, etc.)</title>
5 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="../../../../index.html" title="Spirit 2.5.2">
8 <link rel="up" href="../numeric.html" title="Numeric Parsers">
9 <link rel="prev" href="../numeric.html" title="Numeric Parsers">
10 <link rel="next" href="int.html" title="Signed Integer Parsers (int_, etc.)">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="../numeric.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><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="int.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h5 class="title">
27 <a name="spirit.qi.reference.numeric.uint"></a><a class="link" href="uint.html" title="Unsigned Integer Parsers (uint_, etc.)">Unsigned Integer
28 Parsers (<code class="computeroutput"><span class="identifier">uint_</span></code>, etc.)</a>
29 </h5></div></div></div>
31 <a name="spirit.qi.reference.numeric.uint.h0"></a>
32 <span><a name="spirit.qi.reference.numeric.uint.description"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.description">Description</a>
35 The <code class="computeroutput"><span class="identifier">uint_parser</span></code> class
36 is the simplest among the members of the numerics package. The <code class="computeroutput"><span class="identifier">uint_parser</span></code> can parse unsigned integers
37 of arbitrary length and size. The <code class="computeroutput"><span class="identifier">uint_parser</span></code>
38 parser can be used to parse ordinary primitive C/C++ integers or even
39 user defined scalars such as bigints (unlimited precision integers) as
40 long as the type follows certain expression requirements (documented
41 below). The <code class="computeroutput"><span class="identifier">uint_parser</span></code>
42 is a template class. Template parameters fine tune its behavior.
45 <a name="spirit.qi.reference.numeric.uint.h1"></a>
46 <span><a name="spirit.qi.reference.numeric.uint.header"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.header">Header</a>
48 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/numeric/uint.hpp></span>
49 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_uint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
52 Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
55 <a name="spirit.qi.reference.numeric.uint.h2"></a>
56 <span><a name="spirit.qi.reference.numeric.uint.namespace"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.namespace">Namespace</a>
58 <div class="informaltable"><table class="table">
59 <colgroup><col></colgroup>
68 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
69 boost::spirit::qi::lit</span></code>
74 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin</span> <span class="comment">// alias:
75 boost::spirit::qi::bin</span></code>
80 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">oct</span> <span class="comment">// alias:
81 boost::spirit::qi::oct</span></code>
86 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">hex</span> <span class="comment">// alias:
87 boost::spirit::qi::hex</span></code>
92 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ushort_</span> <span class="comment">//
93 alias: boost::spirit::qi::ushort_</span></code>
98 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_</span> <span class="comment">//
99 alias: boost::spirit::qi::ulong_</span></code>
104 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">uint_</span> <span class="comment">//
105 alias: boost::spirit::qi::uint_</span></code>
110 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_long</span> <span class="comment">//
111 alias: boost::spirit::qi::ulong_long</span></code>
116 <div class="note"><table border="0" summary="Note">
118 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
119 <th align="left">Note</th>
121 <tr><td align="left" valign="top"><p>
122 <code class="computeroutput"><span class="identifier">ulong_long</span></code> is only
123 available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
124 on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
125 <span class="keyword">long</span> <span class="keyword">long</span></code>
126 (64 bit) unsigned integer types).
129 <div class="note"><table border="0" summary="Note">
131 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
132 <th align="left">Note</th>
134 <tr><td align="left" valign="top"><p>
135 <code class="computeroutput"><span class="identifier">lit</span></code> is reused by the
136 <a class="link" href="../char/char.html" title="Character Parser (char_, lit)">Character Parsers</a>,
137 and the Numeric Parsers. In general, a char parser is created when
138 you pass in a character, and a numeric parser is created when you use
143 <a name="spirit.qi.reference.numeric.uint.h3"></a>
144 <span><a name="spirit.qi.reference.numeric.uint.synopsis"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.synopsis">Synopsis</a>
146 <pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
147 <span class="keyword">typename</span> <span class="identifier">T</span>
148 <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">Radix</span>
149 <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">MinDigits</span>
150 <span class="special">,</span> <span class="keyword">int</span> <span class="identifier">MaxDigits</span><span class="special">></span>
151 <span class="keyword">struct</span> <span class="identifier">uint_parser</span><span class="special">;</span>
154 <a name="spirit.qi.reference.numeric.uint.h4"></a>
155 <span><a name="spirit.qi.reference.numeric.uint.template_parameters"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.template_parameters">Template
158 <div class="informaltable"><table class="table">
185 <code class="computeroutput"><span class="identifier">T</span></code>
190 The numeric base type of the numeric parser.
202 <code class="computeroutput"><span class="identifier">Radix</span></code>
207 The radix base. This can be any base from 2..10 and 16
219 <code class="computeroutput"><span class="identifier">MinDigits</span></code>
224 The minimum number of digits allowable.
236 <code class="computeroutput"><span class="identifier">MaxDigits</span></code>
241 The maximum number of digits allowable. If this is -1, then
242 the maximum limit becomes unbounded.
254 <a name="spirit.qi.reference.numeric.uint.h5"></a>
255 <span><a name="spirit.qi.reference.numeric.uint.model_of"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.model_of">Model
258 <div class="blockquote"><blockquote class="blockquote"><p>
259 <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
260 </p></blockquote></div>
261 <div class="variablelist">
262 <p class="title"><b>Notation</b></p>
264 <dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
266 An object of <code class="computeroutput"><span class="identifier">T</span></code>,
267 the numeric base type.
269 <dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
271 Numeric literal, any unsigned integer value, or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
272 Argument</a> that evaluates to a unsigned integer value.
277 <a name="spirit.qi.reference.numeric.uint.h6"></a>
278 <span><a name="spirit.qi.reference.numeric.uint.expression_semantics"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.expression_semantics">Expression
282 Semantics of an expression is defined only where it differs from, or
283 is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
285 <div class="informaltable"><table class="table">
307 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort_</span>
308 <span class="identifier">uint_</span>
309 <span class="identifier">ulong_</span>
310 <span class="identifier">ulong_long</span>
317 Parse an unsigned integer using the default radix (10).
325 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
326 <span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
327 <span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
328 <span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
329 <span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
336 Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
337 using the default radix (10). The parser will fail if the parsed
338 value is not equal to the specified value.
346 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span>
347 <span class="identifier">oct</span>
348 <span class="identifier">hex</span>
355 Parse an unsigned integer using radix 2 for <code class="computeroutput"><span class="identifier">bin</span></code>,
356 radix 8 for <code class="computeroutput"><span class="identifier">oct</span></code>,
357 and radix 16 for <code class="computeroutput"><span class="identifier">hex</span></code>.
365 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
366 <span class="identifier">oct</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
367 <span class="identifier">hex</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
374 Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
375 using radix 2 for <code class="computeroutput"><span class="identifier">bin</span></code>,
376 radix 8 for <code class="computeroutput"><span class="identifier">oct</span></code>,
377 and radix 16 for <code class="computeroutput"><span class="identifier">hex</span></code>.
378 The parser will fail if the parsed value is not equal to the
387 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_parser</span><span class="special"><</span>
388 <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
389 <span class="special">>()</span>
396 Parse an unsigned integer of type <code class="computeroutput"><span class="identifier">T</span></code>
397 using radix <code class="computeroutput"><span class="identifier">Radix</span></code>,
398 with a minimum of <code class="computeroutput"><span class="identifier">MinDigits</span></code>
399 and a maximum of <code class="computeroutput"><span class="identifier">MaxDigits</span></code>.
407 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_parser</span><span class="special"><</span>
408 <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
409 <span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span>
416 Match the literal <code class="computeroutput"><span class="identifier">num</span></code>
417 of type <code class="computeroutput"><span class="identifier">T</span></code> using
418 radix <code class="computeroutput"><span class="identifier">Radix</span></code>,
419 with a minimum of <code class="computeroutput"><span class="identifier">MinDigits</span></code>
420 and a maximum of <code class="computeroutput"><span class="identifier">MaxDigits</span></code>.
421 The parser will fail if the parsed value is not equal to the
428 <div class="important"><table border="0" summary="Important">
430 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
431 <th align="left">Important</th>
433 <tr><td align="left" valign="top"><p>
434 All numeric parsers check for overflow conditions based on the type
435 <code class="computeroutput"><span class="identifier">T</span></code> the corresponding
436 <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><></span></code>
437 has been instantiated with. If the parsed number overflows this type
438 the parsing fails. Please be aware that the overflow check is not based
439 on the type of the supplied attribute but solely depends on the template
440 parameter <code class="computeroutput"><span class="identifier">T</span></code>.
444 <a name="spirit.qi.reference.numeric.uint.h7"></a>
445 <span><a name="spirit.qi.reference.numeric.uint.attributes"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.attributes">Attributes</a>
447 <div class="informaltable"><table class="table">
469 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
476 <code class="computeroutput"><span class="identifier">unused</span></code>
484 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort_</span>
485 <span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
492 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
500 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_</span>
501 <span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
502 <span class="identifier">bin</span>
503 <span class="identifier">bin</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
504 <span class="identifier">oct</span>
505 <span class="identifier">oct</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
506 <span class="identifier">hex</span>
507 <span class="identifier">hex</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
514 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
522 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ulong_</span>
523 <span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
530 <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
538 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ulong_long</span>
539 <span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
546 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ulong_long_type</span></code>
554 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_parser</span><span class="special"><</span>
555 <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
556 <span class="special">>()</span>
557 <span class="identifier">uint_parser</span><span class="special"><</span>
558 <span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span>
559 <span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span>
566 <code class="computeroutput"><span class="identifier">T</span></code>
573 <a name="spirit.qi.reference.numeric.uint.h8"></a>
574 <span><a name="spirit.qi.reference.numeric.uint.complexity"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.complexity">Complexity</a>
576 <div class="blockquote"><blockquote class="blockquote"><p>
577 O(N), where N is the number of digits being parsed.
578 </p></blockquote></div>
580 <a name="spirit.qi.reference.numeric.uint.h9"></a>
581 <span><a name="spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
582 Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
585 For the numeric base type, <code class="computeroutput"><span class="identifier">T</span></code>,
586 the expression requirements below must be valid:
588 <div class="informaltable"><table class="table">
609 <code class="computeroutput"><span class="identifier">T</span><span class="special">()</span></code>
621 <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>
626 Construct from an <code class="computeroutput"><span class="keyword">int</span></code>.
633 <code class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
634 <span class="identifier">n</span></code>
646 <code class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
647 <span class="identifier">n</span></code>
659 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></code>
664 <code class="computeroutput"><span class="keyword">true</span></code> or <code class="computeroutput"><span class="keyword">false</span></code> if <code class="computeroutput"><span class="identifier">T</span></code>
672 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></code>
677 Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
678 radix digits. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
686 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></code>
691 Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
692 base 10. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
700 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>
705 Maximum value for <code class="computeroutput"><span class="identifier">T</span></code>.
706 Required only if <code class="computeroutput"><span class="identifier">T</span></code>
714 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></code>
719 Minimum value for <code class="computeroutput"><span class="identifier">T</span></code>.
720 Required only if <code class="computeroutput"><span class="identifier">T</span></code>
728 <a name="spirit.qi.reference.numeric.uint.h10"></a>
729 <span><a name="spirit.qi.reference.numeric.uint.example"></a></span><a class="link" href="uint.html#spirit.qi.reference.numeric.uint.example">Example</a>
731 <div class="note"><table border="0" summary="Note">
733 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
734 <th align="left">Note</th>
736 <tr><td align="left" valign="top"><p>
737 The test harness for the example(s) below is presented in the <a class="link" href="../basics.html#spirit.qi.reference.basics.examples">Basics Examples</a>
742 Some using declarations:
746 <pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">val</span><span class="special">;</span>
747 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
748 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">uint_</span><span class="special">;</span>
749 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">uint_parser</span><span class="special">;</span>
754 Basic unsigned integers:
758 <pre class="programlisting"><span class="comment">// unsigned int</span>
759 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">);</span>
760 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">(</span><span class="number">12345</span><span class="special">));</span>
761 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">uint_</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345</span><span class="special">)));</span>
763 <span class="comment">// literals</span>
764 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="number">12345</span><span class="special">));</span>
765 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12345"</span><span class="special">,</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="number">12345</span><span class="special">)));</span>
770 Thousand separated number parser:
774 <pre class="programlisting"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">3</span><span class="special">></span> <span class="identifier">uint3_p</span><span class="special">;</span> <span class="comment">// 1..3 digits</span>
775 <span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="number">3</span><span class="special">></span> <span class="identifier">uint3_3_p</span><span class="special">;</span> <span class="comment">// exactly 3 digits</span>
776 <span class="identifier">test_parser</span><span class="special">(</span><span class="string">"12,345,678"</span><span class="special">,</span> <span class="identifier">uint3_p</span> <span class="special">>></span> <span class="special">*(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">uint3_3_p</span><span class="special">));</span>
781 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
782 <td align="left"></td>
783 <td align="right"><div class="copyright-footer">Copyright © 2001-2011 Joel de Guzman, Hartmut Kaiser<p>
784 Distributed under the Boost Software License, Version 1.0. (See accompanying
785 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>)
790 <div class="spirit-nav">
791 <a accesskey="p" href="../numeric.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><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="int.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>