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>Examples</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="../boost_lexical_cast.html" title="Chapter 21. Boost.Lexical_Cast 1.0"> 10<link rel="prev" href="../boost_lexical_cast.html" title="Chapter 21. Boost.Lexical_Cast 1.0"> 11<link rel="next" href="synopsis.html" title="Synopsis"> 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="../boost_lexical_cast.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_lexical_cast.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="synopsis.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 25</div> 26<div class="section"> 27<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 28<a name="boost_lexical_cast.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a> 29</h2></div></div></div> 30<div class="toc"><dl class="toc"> 31<dt><span class="section"><a href="examples.html#boost_lexical_cast.examples.strings_to_numbers_conversion">Strings 32 to numbers conversion</a></span></dt> 33<dt><span class="section"><a href="examples.html#boost_lexical_cast.examples.numbers_to_strings_conversion">Numbers 34 to strings conversion</a></span></dt> 35<dt><span class="section"><a href="examples.html#boost_lexical_cast.examples.converting_to_string_without_dynamic_memory_allocation">Converting 36 to string without dynamic memory allocation</a></span></dt> 37<dt><span class="section"><a href="examples.html#boost_lexical_cast.examples.converting_part_of_the_string">Converting 38 part of the string</a></span></dt> 39<dt><span class="section"><a href="examples.html#boost_lexical_cast.examples.generic_programming__boost_fusion_">Generic 40 programming (Boost.Fusion)</a></span></dt> 41<dt><span class="section"><a href="examples.html#boost_lexical_cast.examples.generic_programming__boost_variant_">Generic 42 programming (Boost.Variant)</a></span></dt> 43</dl></div> 44<div class="section"> 45<div class="titlepage"><div><div><h3 class="title"> 46<a name="boost_lexical_cast.examples.strings_to_numbers_conversion"></a><a class="link" href="examples.html#boost_lexical_cast.examples.strings_to_numbers_conversion" title="Strings to numbers conversion">Strings 47 to numbers conversion</a> 48</h3></div></div></div> 49<p> 50 The following example treats command line arguments as a sequence of numeric 51 data 52 </p> 53<p> 54</p> 55<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">lexical_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 56<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span> 57 58<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="comment">/*argc*/</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span> 59<span class="special">{</span> 60 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special">;</span> 61 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bad_lexical_cast</span><span class="special">;</span> 62 63 <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">short</span><span class="special">></span> <span class="identifier">args</span><span class="special">;</span> 64 65 <span class="keyword">while</span> <span class="special">(*++</span><span class="identifier">argv</span><span class="special">)</span> 66 <span class="special">{</span> 67 <span class="keyword">try</span> 68 <span class="special">{</span> 69 <span class="identifier">args</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="keyword">short</span><span class="special">>(*</span><span class="identifier">argv</span><span class="special">));</span> 70 <span class="special">}</span> 71 <span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">bad_lexical_cast</span> <span class="special">&)</span> 72 <span class="special">{</span> 73 <span class="identifier">args</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">0</span><span class="special">);</span> 74 <span class="special">}</span> 75 <span class="special">}</span> 76 77 <span class="comment">// ...</span> 78<span class="special">}</span> 79</pre> 80<p> 81 </p> 82</div> 83<div class="section"> 84<div class="titlepage"><div><div><h3 class="title"> 85<a name="boost_lexical_cast.examples.numbers_to_strings_conversion"></a><a class="link" href="examples.html#boost_lexical_cast.examples.numbers_to_strings_conversion" title="Numbers to strings conversion">Numbers 86 to strings conversion</a> 87</h3></div></div></div> 88<p> 89 The following example uses numeric data in a string expression: 90 </p> 91<p> 92</p> 93<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">log_message</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&);</span> 94 95<span class="keyword">void</span> <span class="identifier">log_errno</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">yoko</span><span class="special">)</span> 96<span class="special">{</span> 97 <span class="identifier">log_message</span><span class="special">(</span><span class="string">"Error "</span> <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="identifier">yoko</span><span class="special">)</span> <span class="special">+</span> <span class="string">": "</span> <span class="special">+</span> <span class="identifier">strerror</span><span class="special">(</span><span class="identifier">yoko</span><span class="special">));</span> 98<span class="special">}</span> 99</pre> 100<p> 101 </p> 102</div> 103<div class="section"> 104<div class="titlepage"><div><div><h3 class="title"> 105<a name="boost_lexical_cast.examples.converting_to_string_without_dynamic_memory_allocation"></a><a class="link" href="examples.html#boost_lexical_cast.examples.converting_to_string_without_dynamic_memory_allocation" title="Converting to string without dynamic memory allocation">Converting 106 to string without dynamic memory allocation</a> 107</h3></div></div></div> 108<p> 109 The following example converts some number and puts it to file: 110 </p> 111<p> 112</p> 113<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">number_to_file</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">number</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">FILE</span><span class="special">*</span> <span class="identifier">file</span><span class="special">)</span> 114<span class="special">{</span> 115 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="number">50</span><span class="special">></span> <span class="identifier">buf_t</span><span class="special">;</span> <span class="comment">// You can use std::array if your compiler supports it</span> 116 <span class="identifier">buf_t</span> <span class="identifier">buffer</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="identifier">buf_t</span><span class="special">>(</span><span class="identifier">number</span><span class="special">);</span> <span class="comment">// No dynamic memory allocation</span> 117 <span class="identifier">std</span><span class="special">::</span><span class="identifier">fputs</span><span class="special">(</span><span class="identifier">buffer</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">file</span><span class="special">);</span> 118<span class="special">}</span> 119</pre> 120<p> 121 </p> 122</div> 123<div class="section"> 124<div class="titlepage"><div><div><h3 class="title"> 125<a name="boost_lexical_cast.examples.converting_part_of_the_string"></a><a class="link" href="examples.html#boost_lexical_cast.examples.converting_part_of_the_string" title="Converting part of the string">Converting 126 part of the string</a> 127</h3></div></div></div> 128<p> 129 The following example takes part of the string and converts it to <code class="computeroutput"><span class="keyword">int</span></code>: 130 </p> 131<p> 132</p> 133<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">convert_strings_part</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">n</span><span class="special">)</span> 134<span class="special">{</span> 135 <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span> 136<span class="special">}</span> 137</pre> 138<p> 139 </p> 140</div> 141<div class="section"> 142<div class="titlepage"><div><div><h3 class="title"> 143<a name="boost_lexical_cast.examples.generic_programming__boost_fusion_"></a><a class="link" href="examples.html#boost_lexical_cast.examples.generic_programming__boost_fusion_" title="Generic programming (Boost.Fusion)">Generic 144 programming (Boost.Fusion)</a> 145</h3></div></div></div> 146<p> 147 In this example we'll make a <code class="computeroutput"><span class="identifier">stringize</span></code> 148 method that accepts a sequence, converts each element of the sequence into 149 string and appends that string to the result. 150 </p> 151<p> 152 Example is based on the example from the <a href="http://www.packtpub.com/boost-cplusplus-application-development-cookbook/book" target="_top">Boost 153 C++ Application Development Cookbook</a> by Antony Polukhin, ISBN 9781849514880. 154 </p> 155<p> 156 Step 1: Making a functor that converts any type to a string and remembers 157 result: 158 </p> 159<p> 160</p> 161<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">lexical_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 162 163<span class="keyword">struct</span> <span class="identifier">stringize_functor</span> <span class="special">{</span> 164<span class="keyword">private</span><span class="special">:</span> 165 <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&</span> <span class="identifier">result</span><span class="special">;</span> 166 167<span class="keyword">public</span><span class="special">:</span> 168 <span class="keyword">explicit</span> <span class="identifier">stringize_functor</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&</span> <span class="identifier">res</span><span class="special">)</span> 169 <span class="special">:</span> <span class="identifier">result</span><span class="special">(</span><span class="identifier">res</span><span class="special">)</span> 170 <span class="special">{}</span> 171 172 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 173 <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> 174 <span class="identifier">result</span> <span class="special">+=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">>(</span><span class="identifier">v</span><span class="special">);</span> 175 <span class="special">}</span> 176<span class="special">};</span> 177</pre> 178<p> 179 </p> 180<p> 181 Step 2: Applying <code class="computeroutput"><span class="identifier">stringize_functor</span></code> 182 to each element in sequence: 183 </p> 184<p> 185</p> 186<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 187<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Sequence</span><span class="special">></span> 188<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">stringize</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Sequence</span><span class="special">&</span> <span class="identifier">seq</span><span class="special">)</span> <span class="special">{</span> 189 <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">result</span><span class="special">;</span> 190 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">seq</span><span class="special">,</span> <span class="identifier">stringize_functor</span><span class="special">(</span><span class="identifier">result</span><span class="special">));</span> 191 <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span> 192<span class="special">}</span> 193</pre> 194<p> 195 </p> 196<p> 197 Step 3: Using the <code class="computeroutput"><span class="identifier">stringize</span></code> 198 with different types: 199 </p> 200<p> 201</p> 202<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">boost_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 203<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">std_pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 204 205<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span> 206 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">,</span> <span class="keyword">int</span><span class="special">></span> <span class="identifier">decim</span><span class="special">(</span><span class="char">'-'</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="char">'e'</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span> 207 <span class="keyword">if</span> <span class="special">(</span><span class="identifier">stringize</span><span class="special">(</span><span class="identifier">decim</span><span class="special">)</span> <span class="special">!=</span> <span class="string">"-10e5"</span><span class="special">)</span> <span class="special">{</span> 208 <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span> 209 <span class="special">}</span> 210 211 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">value_and_type</span><span class="special">(</span><span class="number">270</span><span class="special">,</span> <span class="string">"Kelvin"</span><span class="special">);</span> 212 <span class="keyword">if</span> <span class="special">(</span><span class="identifier">stringize</span><span class="special">(</span><span class="identifier">value_and_type</span><span class="special">)</span> <span class="special">!=</span> <span class="string">"270Kelvin"</span><span class="special">)</span> <span class="special">{</span> 213 <span class="keyword">return</span> <span class="number">2</span><span class="special">;</span> 214 <span class="special">}</span> 215 216 <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> 217<span class="special">}</span> 218</pre> 219<p> 220 </p> 221</div> 222<div class="section"> 223<div class="titlepage"><div><div><h3 class="title"> 224<a name="boost_lexical_cast.examples.generic_programming__boost_variant_"></a><a class="link" href="examples.html#boost_lexical_cast.examples.generic_programming__boost_variant_" title="Generic programming (Boost.Variant)">Generic 225 programming (Boost.Variant)</a> 226</h3></div></div></div> 227<p> 228 In this example we'll make a <code class="computeroutput"><span class="identifier">to_long_double</span></code> 229 method that converts value of the Boost.Variant to <code class="computeroutput"><span class="keyword">long</span> 230 <span class="keyword">double</span></code>. 231 </p> 232<p> 233</p> 234<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">lexical_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 235<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">variant</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 236 237<span class="keyword">struct</span> <span class="identifier">to_long_double_functor</span><span class="special">:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_visitor</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">></span> <span class="special">{</span> 238 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 239 <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">v</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> 240 <span class="comment">// Lexical cast has many optimizations including optimizations for situations that usually </span> 241 <span class="comment">// occur in generic programming, like std::string to std::string or arithmetic type to arithmetic type conversion. </span> 242 <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">>(</span><span class="identifier">v</span><span class="special">);</span> 243 <span class="special">}</span> 244<span class="special">};</span> 245 246<span class="comment">// Throws `boost::bad_lexical_cast` if value of the variant is not convertible to `long double`</span> 247<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Variant</span><span class="special">></span> 248<span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">to_long_double</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Variant</span><span class="special">&</span> <span class="identifier">v</span><span class="special">)</span> <span class="special">{</span> 249 <span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span><span class="special">(</span><span class="identifier">to_long_double_functor</span><span class="special">(),</span> <span class="identifier">v</span><span class="special">);</span> 250<span class="special">}</span> 251 252<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span> 253 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">v1</span><span class="special">(</span><span class="char">'0'</span><span class="special">),</span> <span class="identifier">v2</span><span class="special">(</span><span class="string">"10.0001"</span><span class="special">),</span> <span class="identifier">v3</span><span class="special">(</span><span class="number">1</span><span class="special">);</span> 254 255 <span class="keyword">const</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">sum</span> <span class="special">=</span> <span class="identifier">to_long_double</span><span class="special">(</span><span class="identifier">v1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">to_long_double</span><span class="special">(</span><span class="identifier">v2</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">to_long_double</span><span class="special">(</span><span class="identifier">v3</span><span class="special">);</span> 256 <span class="keyword">if</span> <span class="special">(</span><span class="number">11</span> <span class="special"><</span> <span class="identifier">sum</span> <span class="special">&&</span> <span class="identifier">sum</span> <span class="special"><</span> <span class="number">11.1</span><span class="special">)</span> <span class="special">{</span> 257 <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> <span class="comment">// OK, as expected</span> 258 <span class="special">};</span> 259 260 <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span> <span class="comment">// FAIL</span> 261<span class="special">}</span> 262</pre> 263<p> 264 </p> 265</div> 266</div> 267<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 268<td align="left"></td> 269<td align="right"><div class="copyright-footer">Copyright © 2000-2005 Kevlin Henney<br>Copyright © 2006-2010 Alexander Nasonov<br>Copyright © 2011-2020 Antony Polukhin<p> 270 Distributed under the Boost Software License, Version 1.0. (See accompanying 271 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>) 272 </p> 273</div></td> 274</tr></table> 275<hr> 276<div class="spirit-nav"> 277<a accesskey="p" href="../boost_lexical_cast.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_lexical_cast.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="synopsis.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 278</div> 279</body> 280</html> 281