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>Reference</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="../ratio.html" title="Chapter 34. Boost.Ratio 2.1.0"> 10<link rel="prev" href="users_guide.html" title="User's Guide"> 11<link rel="next" href="appendices.html" title="Appendices"> 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="users_guide.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ratio.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="appendices.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="ratio.reference"></a><a class="link" href="reference.html" title="Reference">Reference </a> 29</h2></div></div></div> 30<div class="toc"><dl class="toc"> 31<dt><span class="section"><a href="reference.html#ratio.reference.config_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 32<dt><span class="section"><a href="reference.html#ratio.reference.std">C++0x Recommendation</a></span></dt> 33<dt><span class="section"><a href="reference.html#ratio.reference.io">Ratio I/O</a></span></dt> 34<dt><span class="section"><a href="reference.html#ratio.reference.mpl">Rational Constant</a></span></dt> 35</dl></div> 36<div class="section"> 37<div class="titlepage"><div><div><h3 class="title"> 38<a name="ratio.reference.config_hpp"></a><a class="link" href="reference.html#ratio.reference.config_hpp" title="Header <boost/ratio/config.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 39</h3></div></div></div> 40<div class="toc"><dl class="toc"> 41<dt><span class="section"><a href="reference.html#ratio.reference.config_hpp.ext">Extensions</a></span></dt> 42<dt><span class="section"><a href="reference.html#ratio.reference.config_hpp.deprecated">Deprecated</a></span></dt> 43<dt><span class="section"><a href="reference.html#ratio.reference.config_hpp.version">Version</a></span></dt> 44<dt><span class="section"><a href="reference.html#ratio.reference.config_hpp.assert">Static Assert</a></span></dt> 45</dl></div> 46<pre class="programlisting"><span class="comment">// Configuration macros</span> 47<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.version" title="Version"><code class="computeroutput"><span class="identifier">BOOST_RATIO_VERSION</span> </code></a> 48<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> 49<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated"><code class="computeroutput"><span class="identifier">BOOST_RATIO_PROVIDES_DEPRECATED_FEATURES_SINCE_V2_0_0</span></code></a> 50<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated"><code class="computeroutput"><span class="identifier">BOOST_RATIO_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V2_0_0</span> </code></a> 51<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_STATIC_ASSERT</span></code></a> 52<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_MPL_ASSERT</span></code></a> 53<span class="preprocessor">#define</span> <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_ARRAY_ASSERT</span></code></a> 54</pre> 55<div class="section"> 56<div class="titlepage"><div><div><h4 class="title"> 57<a name="ratio.reference.config_hpp.ext"></a><a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions">Extensions</a> 58</h4></div></div></div> 59<p> 60 When <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> 61 is defined, <span class="bold"><strong>Boost.Ratio</strong></span> provides in addition 62 some extension to the C++ standard, see below. 63 </p> 64</div> 65<div class="section"> 66<div class="titlepage"><div><div><h4 class="title"> 67<a name="ratio.reference.config_hpp.deprecated"></a><a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated">Deprecated</a> 68</h4></div></div></div> 69<p> 70 When <a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated"><code class="computeroutput"><span class="identifier">BOOST_RATIO_PROVIDES_DEPRECATED_FEATURES_SINCE_V2_0_0</span></code></a> 71 is defined the deprecated features stated as DEPRECATED V2 are provided. 72 </p> 73<p> 74 When <a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated"><code class="computeroutput"><span class="identifier">BOOST_RATIO_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V2_0_0</span> 75 </code></a> is defined the deprecated features stated as DEPRECATED 76 V2 are NOT provided. 77 </p> 78</div> 79<div class="section"> 80<div class="titlepage"><div><div><h4 class="title"> 81<a name="ratio.reference.config_hpp.version"></a><a class="link" href="reference.html#ratio.reference.config_hpp.version" title="Version">Version</a> 82</h4></div></div></div> 83<p> 84 <a class="link" href="reference.html#ratio.reference.config_hpp.version" title="Version"><code class="computeroutput"><span class="identifier">BOOST_RATIO_VERSION</span> 85 </code></a> stands for the Boost.Ratio version which can be 1 or 2. 86 The default up to 1.55 is version 1. Since 1.56 it will be 2. 87 </p> 88<p> 89 When <a class="link" href="reference.html#ratio.reference.config_hpp.version" title="Version"><code class="computeroutput"><span class="identifier">BOOST_RATIO_VERSION</span> 90 </code></a> is 1 <a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated"><code class="computeroutput"><span class="identifier">BOOST_RATIO_PROVIDES_DEPRECATED_FEATURES_SINCE_V2_0_0</span></code></a> 91 is defined by default. 92 </p> 93<p> 94 When <a class="link" href="reference.html#ratio.reference.config_hpp.version" title="Version"><code class="computeroutput"><span class="identifier">BOOST_RATIO_VERSION</span> 95 </code></a> is 2 <a class="link" href="reference.html#ratio.reference.config_hpp.deprecated" title="Deprecated"><code class="computeroutput"><span class="identifier">BOOST_RATIO_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V2_0_0</span> 96 </code></a> is defined by default. 97 </p> 98</div> 99<div class="section"> 100<div class="titlepage"><div><div><h4 class="title"> 101<a name="ratio.reference.config_hpp.assert"></a><a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert">Static Assert</a> 102</h4></div></div></div> 103<p> 104 When BOOST_NO_CXX11_STATIC_ASSERT is defined, the user can select the way 105 static assertions are reported. Define 106 </p> 107<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 108<li class="listitem"> 109 <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_STATIC_ASSERT</span></code></a> 110 to use Boost.StaticAssert. 111 </li> 112<li class="listitem"> 113 <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_MPL_ASSERT</span></code></a> 114 to use <span class="bold"><strong>Boost.MPL</strong></span> static assertions. 115 </li> 116<li class="listitem"> 117 <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_ARRAY_ASSERT</span></code></a> 118 to use <span class="bold"><strong>Boost.Ratio</strong></span> internal static 119 assertions. 120 </li> 121</ul></div> 122<p> 123 The default behavior is as if <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_ARRAY_ASSERT</span></code></a> 124 was defined. 125 </p> 126<p> 127 When <a class="link" href="reference.html#ratio.reference.config_hpp.assert" title="Static Assert"><code class="computeroutput"><span class="identifier">BOOST_RATIO_USES_MPL_ASSERT</span></code></a> 128 is not defined the following symbols are defined as shown: 129 </p> 130<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_OVERFLOW_IN_ADD</span> <span class="string">"overflow in ratio add"</span> 131<span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_OVERFLOW_IN_SUB</span> <span class="string">"overflow in ratio sub"</span> 132<span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_OVERFLOW_IN_MUL</span> <span class="string">"overflow in ratio mul"</span> 133<span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_OVERFLOW_IN_DIV</span> <span class="string">"overflow in ratio div"</span> 134<span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_NUMERATOR_IS_OUT_OF_RANGE</span> <span class="string">"ratio numerator is out of range"</span> 135<span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_DIVIDE_BY_0</span> <span class="string">"ratio divide by 0"</span> 136<span class="preprocessor">#define</span> <span class="identifier">BOOST_RATIO_DENOMINATOR_IS_OUT_OF_RANGE</span> <span class="string">"ratio denominator is out of range"</span> 137</pre> 138<p> 139 Depending upon the static assertion system used, a hint as to the failing 140 assertion will appear in some form in the compiler diagnostic output. 141 </p> 142</div> 143</div> 144<div class="section"> 145<div class="titlepage"><div><div><h3 class="title"> 146<a name="ratio.reference.std"></a><a class="link" href="reference.html#ratio.reference.std" title="C++0x Recommendation">C++0x Recommendation</a> 147</h3></div></div></div> 148<div class="toc"><dl class="toc"> 149<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_ratio_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 150<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_fwdhpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 151<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 152</dl></div> 153<div class="section"> 154<div class="titlepage"><div><div><h4 class="title"> 155<a name="ratio.reference.std.ratio_ratio_hpp"></a><a class="link" href="reference.html#ratio.reference.std.ratio_ratio_hpp" title="Header <boost/ratio.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 156</h4></div></div></div> 157<p> 158 This header includes all the ratio related header files 159 </p> 160<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 161<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 162<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">rational_constant</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 163</pre> 164</div> 165<div class="section"> 166<div class="titlepage"><div><div><h4 class="title"> 167<a name="ratio.reference.std.ratio_fwdhpp"></a><a class="link" href="reference.html#ratio.reference.std.ratio_fwdhpp" title="Header <boost/ratio/ratio_fwd.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 168</h4></div></div></div> 169<p> 170 This header provides forward declarations for the <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> 171 file. 172 </p> 173<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 174 175 <span class="keyword">template</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">D</span> <span class="special">=</span> <span class="number">1</span><span class="special">></span> <span class="keyword">class</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special">;</span> 176 177 <span class="comment">// ratio arithmetic</span> 178 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_add</span></code></a><span class="special">;</span> 179 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_subtract</span></code></a><span class="special">;</span> 180 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_multiply</span></code></a><span class="special">;</span> 181 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_divide</span></code></a><span class="special">;</span> 182<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_RATIO_EXTENSIONS</span> 183 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">,</span><span class="keyword">int</span> <span class="identifier">P</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_power</span></code></a><span class="special">;</span> 184 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_negate</span></code></a><span class="special">;</span> 185 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_sign</span></code></a><span class="special">;</span> 186 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_abs</span></code></a><span class="special">;</span> 187 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_gcd</span></code></a><span class="special">;</span> 188 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_lcm</span></code></a><span class="special">;</span> 189<span class="preprocessor">#endif</span> 190 191 <span class="comment">// ratio comparison</span> 192 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_equal</span></code></a><span class="special">;</span> 193 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_not_equal</span></code></a><span class="special">;</span> 194 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_less</span></code></a><span class="special">;</span> 195 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_less_equal</span></code></a><span class="special">;</span> 196 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_greater</span></code></a><span class="special">;</span> 197 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_greater_equal</span></code></a><span class="special">;</span> 198 199 <span class="comment">// convenience SI typedefs</span> 200 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000000000000LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">atto</span></code></a><span class="special">;</span> 201 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000000000LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">femto</span></code></a><span class="special">;</span> 202 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000000LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">pico</span></code></a><span class="special">;</span> 203 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">nano</span></code></a><span class="special">;</span> 204 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">micro</span></code></a><span class="special">;</span> 205 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">milli</span></code></a><span class="special">;</span> 206 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">100LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">centi</span></code></a><span class="special">;</span> 207 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">10LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">deci</span></code></a><span class="special">;</span> 208 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">10LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">deca</span></code></a><span class="special">;</span> 209 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">100LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">hecto</span></code></a><span class="special">;</span> 210 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">kilo</span></code></a><span class="special">;</span> 211 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">mega</span></code></a><span class="special">;</span> 212 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">giga</span></code></a><span class="special">;</span> 213 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1000000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">tera</span></code></a><span class="special">;</span> 214 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1000000000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">peta</span></code></a><span class="special">;</span> 215 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1000000000000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs"><code class="computeroutput"><span class="identifier">exa</span></code></a><span class="special">;</span> 216 217<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_RATIO_EXTENSIONS</span> 218 <span class="comment">// convenience IEC typedefs</span> 219 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs"><code class="computeroutput"><span class="identifier">kibi</span></code></a><span class="special">;</span> 220 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs"><code class="computeroutput"><span class="identifier">mebi</span></code></a><span class="special">;</span> 221 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs"><code class="computeroutput"><span class="identifier">gibi</span></code></a><span class="special">;</span> 222 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs"><code class="computeroutput"><span class="identifier">tebi</span></code></a><span class="special">;</span> 223 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs"><code class="computeroutput"><span class="identifier">pebi</span></code></a><span class="special">;</span> 224 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs"><code class="computeroutput"><span class="identifier">exbi</span></code></a><span class="special">;</span> 225<span class="preprocessor">#endif</span> 226<span class="special">}</span> 227</pre> 228</div> 229<div class="section"> 230<div class="titlepage"><div><div><h4 class="title"> 231<a name="ratio.reference.std.ratio_hpp"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp" title="Header <boost/ratio/ratio.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 232</h4></div></div></div> 233<div class="toc"><dl class="toc"> 234<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.ratio">Class Template 235 <code class="computeroutput"><span class="identifier">ratio</span><span class="special"><></span></code></a></span></dt> 236<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic"><code class="computeroutput"><span class="identifier">ratio</span></code> Arithmetic</a></span></dt> 237<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison"><code class="computeroutput"><span class="identifier">ratio</span></code> Comparison</a></span></dt> 238<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs">SI 239 typedefs</a></span></dt> 240<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs">IEC 241 typedefs</a></span></dt> 242<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.limitations">Limitations</a></span></dt> 243<dt><span class="section"><a href="reference.html#ratio.reference.std.ratio_hpp.extensions">Extensions</a></span></dt> 244</dl></div> 245<p> 246 <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> 247 is a facility which is useful in specifying compile-time rational constants. 248 Compile-time rational arithmetic is supported with protection against overflow 249 and divide by zero. Such a facility is very handy to efficiently represent 250 1/3 of a nanosecond, or to specify an inch in terms of meters (for example 251 254/10000 meters - which <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> will reduce to 127/5000 252 meters). 253 </p> 254<div class="section"> 255<div class="titlepage"><div><div><h5 class="title"> 256<a name="ratio.reference.std.ratio_hpp.ratio"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>">Class Template 257 <code class="computeroutput"><span class="identifier">ratio</span><span class="special"><></span></code></a> 258</h5></div></div></div> 259<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">D</span><span class="special">></span> 260<span class="keyword">class</span> <span class="identifier">ratio</span> <span class="special">{</span> 261<span class="keyword">public</span><span class="special">:</span> 262 <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">num</span><span class="special">;</span> 263 <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">den</span><span class="special">;</span> 264 <span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">den</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span> 265 266 <span class="preprocessor">#ifdef</span> <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> 267 <span class="keyword">typedef</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">rational_c_tag</span> <span class="identifier">tag</span><span class="special">;</span> 268 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">rational</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span><span class="special">></span> <span class="identifier">value_type</span><span class="special">;</span> 269 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">num_type</span><span class="special">;</span> 270 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">den_type</span><span class="special">;</span> 271 272 <span class="identifier">ratio</span><span class="special">()</span> <span class="special">=</span> <span class="keyword">default</span><span class="special">;</span> 273 274 <span class="keyword">template</span> <span class="special"><</span><span class="identifier">intmax_t</span> <span class="identifier">_N2</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">_D2</span><span class="special">></span> 275 <span class="identifier">ratio</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ratio</span><span class="special"><</span><span class="identifier">_N2</span><span class="special">,</span> <span class="identifier">_D2</span><span class="special">>&);</span> 276 277 <span class="keyword">template</span> <span class="special"><</span><span class="identifier">intmax_t</span> <span class="identifier">_N2</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">_D2</span><span class="special">></span> 278 <span class="identifier">ratio</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">ratio</span><span class="special"><</span><span class="identifier">_N2</span><span class="special">,</span> <span class="identifier">_D2</span><span class="special">>&);</span> 279 280 <span class="keyword">static</span> <span class="identifier">value_type</span> <span class="identifier">value</span><span class="special">();</span> 281 <span class="identifier">value_type</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span><span class="special">;</span> 282 <span class="preprocessor">#endif</span> 283<span class="special">};</span> 284</pre> 285<p> 286 A diagnostic will be emitted if <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> is instantiated with 287 <code class="computeroutput"><span class="identifier">D</span> <span class="special">==</span> 288 <span class="number">0</span></code>, or if the absolute value of 289 <code class="computeroutput"><span class="identifier">N</span></code> or <code class="computeroutput"><span class="identifier">D</span></code> 290 cannot be represented. <span class="bold"><strong>Note:</strong></span> These rules 291 ensure that infinite ratios are avoided and that for any negative input, 292 there exists a representable value of its absolute value which is positive. 293 In a two's complement representation, this excludes the most negative 294 value. 295 </p> 296<p> 297 The members num and den will be normalized values of the template arguments 298 N and D computed as follows. Let <code class="computeroutput"><span class="identifier">gcd</span></code> 299 denote the greatest common divisor of <code class="computeroutput"><span class="identifier">N</span></code>'s 300 absolute value and of <code class="computeroutput"><span class="identifier">D</span></code>'s 301 absolute value. Then: 302 </p> 303<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 304<li class="listitem"> 305 <code class="computeroutput"><span class="identifier">num</span></code> has the value 306 <code class="computeroutput"><span class="identifier">sign</span><span class="special">(</span><span class="identifier">N</span><span class="special">)*</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">D</span><span class="special">)*</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">N</span><span class="special">)/</span><span class="identifier">gcd</span></code>. 307 </li> 308<li class="listitem"> 309 <code class="computeroutput"><span class="identifier">den</span></code> has the value 310 <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">D</span><span class="special">)/</span><span class="identifier">gcd</span></code>. 311 </li> 312</ul></div> 313<p> 314 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 315 denotes the normalized form of this <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> type. It should be used 316 when the normalized form of the template arguments are required, since 317 the arguments are not necessarily normalized. 318 </p> 319<p> 320 Two <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> classes <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">N1</span><span class="special">,</span><span class="identifier">D1</span><span class="special">></span></code> 321 and <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">N2</span><span class="special">,</span><span class="identifier">D2</span><span class="special">></span></code> 322 have the same normalized form if <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">N1</span><span class="special">,</span><span class="identifier">D1</span><span class="special">>::</span><span class="identifier">type</span></code> is the same type as <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">N2</span><span class="special">,</span><span class="identifier">D2</span><span class="special">>::</span><span class="identifier">type</span></code> 323 </p> 324<div class="section"> 325<div class="titlepage"><div><div><h6 class="title"> 326<a name="ratio.reference.std.ratio_hpp.ratio.ca"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio.ca" title="Construction and Assignment">Construction 327 and Assignment</a> 328</h6></div></div></div> 329<p> 330 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is 331 defined. 332 </p> 333<h7><a name="ratio.reference.std.ratio_hpp.ratio.ca.h0"></a> 334 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio.ca.default_constructor"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio.ca.default_constructor">Default 335 Constructor</a> 336 </h7><pre class="programlisting"><span class="identifier">ratio</span><span class="special">()=</span><span class="keyword">default</span><span class="special">;</span> 337</pre> 338<p> 339 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> object. 340 </p> 341<h7><a name="ratio.reference.std.ratio_hpp.ratio.ca.h1"></a> 342 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio.ca.copy_constructor"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio.ca.copy_constructor">Copy 343 Constructor</a> 344 </h7><pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">intmax_t</span> <span class="identifier">N2</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">D2</span><span class="special">></span> 345 <span class="identifier">ratio</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">N2</span><span class="special">,</span> <span class="identifier">D2</span><span class="special">>&</span> <span class="identifier">r</span><span class="special">);</span> 346</pre> 347<p> 348 <span class="bold"><strong>Effects:</strong></span> Constructs a <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> object. 349 </p> 350<p> 351 <span class="bold"><strong>Remarks:</strong></span> This constructor will not 352 participate in overload resolution unless <code class="computeroutput"><span class="identifier">r</span></code> 353 has the same normalized form as <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 354 </p> 355<h7><a name="ratio.reference.std.ratio_hpp.ratio.ca.h2"></a> 356 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio.ca.assignement"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio.ca.assignement">Assignement</a> 357 </h7><pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">intmax_t</span> <span class="identifier">N2</span><span class="special">,</span> <span class="identifier">intmax_t</span> <span class="identifier">D2</span><span class="special">></span> 358 <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">N2</span><span class="special">,</span> <span class="identifier">D2</span><span class="special">>&</span> <span class="identifier">r</span><span class="special">);</span> 359</pre> 360<p> 361 <span class="bold"><strong>Effects:</strong></span> Assigns a <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> object. 362 </p> 363<p> 364 <span class="bold"><strong>Returns:</strong></span> *this. 365 </p> 366<p> 367 <span class="bold"><strong>Remarks:</strong></span> This operator will not participate 368 in overload resolution unless <code class="computeroutput"><span class="identifier">r</span></code> 369 has the same normalized form as <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 370 </p> 371</div> 372<div class="section"> 373<div class="titlepage"><div><div><h6 class="title"> 374<a name="ratio.reference.std.ratio_hpp.ratio.mpl"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio.mpl" title="MPL Numeric Metafunctions">MPL Numeric 375 Metafunctions</a> 376</h6></div></div></div> 377<p> 378 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is 379 defined. 380 </p> 381<p> 382 In order to work with <span class="bold"><strong>Boost.MPL</strong></span> numeric 383 metafunctions as a <a class="link" href="reference.html#ratio.reference.mpl.rational_constant" title="Rational Constant Concept">Rational 384 Constant</a>, the following has beed added: 385 </p> 386<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">rational_c_tag</span> <span class="identifier">tag</span><span class="special">;</span> 387<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">rational</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span><span class="special">></span> <span class="identifier">value_type</span><span class="special">;</span> 388<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">num_type</span><span class="special">;</span> 389<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">intmax_t</span> <span class="identifier">den_type</span><span class="special">;</span> 390</pre> 391</div> 392<div class="section"> 393<div class="titlepage"><div><div><h6 class="title"> 394<a name="ratio.reference.std.ratio_hpp.ratio.obs"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio.obs" title="Observers">Observers</a> 395</h6></div></div></div> 396<p> 397 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is 398 defined. 399 </p> 400<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">value_type</span> <span class="identifier">value</span><span class="special">();</span> 401<span class="identifier">value_type</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span><span class="special">;</span> 402</pre> 403<p> 404 <span class="bold"><strong>Returns:</strong></span> value_type(num,den); 405 </p> 406</div> 407</div> 408<div class="section"> 409<div class="titlepage"><div><div><h5 class="title"> 410<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio</span></code> Arithmetic</a> 411</h5></div></div></div> 412<p> 413 For each of the class templates in this section, each template parameter 414 refers to a <code class="computeroutput"><span class="identifier">ratio</span></code>. If 415 the implementation is unable to form the indicated <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a> due to overflow, a diagnostic 416 will be issued. 417 </p> 418<h6> 419<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h0"></a> 420 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_add__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_add__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_add</span><span class="special"><></span></code></a> 421 </h6> 422<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_add</span> <span class="special">{</span> 423 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 424<span class="special">};</span> 425</pre> 426<p> 427 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 428 is a synonym for <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span> <span class="special">+</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">type</span></code>. 429 </p> 430<h6> 431<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h1"></a> 432 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_subtract__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_subtract__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_subtract</span><span class="special"><></span></code></a> 433 </h6> 434<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_subtract</span> <span class="special">{</span> 435 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 436<span class="special">};</span> 437</pre> 438<p> 439 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 440 is a synonym for <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span> <span class="special">-</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">type</span></code>. 441 </p> 442<h6> 443<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h2"></a> 444 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_multiply__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_multiply__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_multiply</span><span class="special"><></span></code></a> 445 </h6> 446<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_multiply</span> <span class="special">{</span> 447 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 448<span class="special">};</span> 449</pre> 450<p> 451 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 452 is a synonym for <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">type</span></code>. 453 </p> 454<h6> 455<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h3"></a> 456 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_divide__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_divide__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_divide</span><span class="special"><></span></code></a> 457 </h6> 458<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_divide</span> <span class="special">{</span> 459 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 460<span class="special">};</span> 461</pre> 462<p> 463 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 464 is a synonym for <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">num</span> <span class="special">*</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">type</span></code>. 465 </p> 466<h6> 467<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h4"></a> 468 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_power__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_power__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_power</span><span class="special"><></span></code></a> 469 </h6> 470<p> 471 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 472 </p> 473<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">P</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_power</span> <span class="special">{</span> 474 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 475<span class="special">};</span> 476</pre> 477<p> 478 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 479 is a synonym for <code class="computeroutput"><span class="identifier">R</span><span class="special">*</span> 480 <span class="special">*</span><span class="identifier">R</span></code> 481 P times. 482 </p> 483<h6> 484<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h5"></a> 485 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_negate__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_negate__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_negate</span><span class="special"><></span></code></a> 486 </h6> 487<p> 488 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 489 </p> 490<p> 491 This extension of the C++ standard helps in the definition of some <span class="bold"><strong>Boost.MPL</strong></span> numeric metafunctions. 492 </p> 493<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_negate</span> <span class="special">{</span> 494 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 495<span class="special">};</span> 496</pre> 497<p> 498 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 499 is a synonym for <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><-</span><span class="identifier">R</span><span class="special">::</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">R</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">type</span></code>. 500 </p> 501<h6> 502<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h6"></a> 503 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_abs__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_abs__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_abs</span><span class="special"><></span></code></a> 504 </h6> 505<p> 506 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 507 </p> 508<p> 509 This extension of the C++ standard helps in the definition of some <span class="bold"><strong>Boost.MPL</strong></span> numeric metafunctions. 510 </p> 511<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_abs</span> <span class="special">{</span> 512 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 513<span class="special">};</span> 514</pre> 515<p> 516 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 517 is a synonym for <code class="computeroutput"><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="identifier">abs_c</span><span class="special"><</span><span class="identifier">intmax_t</span><span class="special">,</span><span class="identifier">R</span><span class="special">::</span><span class="identifier">num</span><span class="special">>::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">R</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">type</span></code>. 518 </p> 519<h6> 520<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h7"></a> 521 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_sign__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_sign__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_sign</span><span class="special"><></span></code></a> 522 </h6> 523<p> 524 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 525 </p> 526<p> 527 This extension of the C++ standard helps in the definition of some <span class="bold"><strong>Boost.MPL</strong></span> numeric metafunctions. 528 </p> 529<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_sign</span> <span class="special">{</span> 530 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 531<span class="special">};</span> 532</pre> 533<p> 534 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 535 is a synonym for <code class="computeroutput"><span class="identifier">sign_c</span><span class="special"><</span><span class="identifier">intmax_t</span><span class="special">,</span><span class="identifier">R</span><span class="special">::</span><span class="identifier">num</span><span class="special">>::</span><span class="identifier">type</span></code>. 536 </p> 537<h6> 538<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h8"></a> 539 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_gcd__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_gcd__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_gcd</span><span class="special"><></span></code></a> 540 </h6> 541<p> 542 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 543 </p> 544<p> 545 This extension of the C++ standard helps in the definition of some <span class="bold"><strong>Boost.MPL</strong></span> numeric metafunctions. 546 </p> 547<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_gcd</span> <span class="special">{</span> 548 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 549<span class="special">};</span> 550</pre> 551<p> 552 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 553 is a synonym for <code class="computeroutput"><span class="identifier">ratio</span><span class="special"><</span><span class="identifier">gcd_c</span><span class="special"><</span><span class="identifier">intmax_t</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">num</span><span class="special">>::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">lcm_c</span><span class="special"><</span><span class="identifier">intmax_t</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">value</span><span class="special">>::</span><span class="identifier">type</span></code>. 554 </p> 555<h6> 556<a name="ratio.reference.std.ratio_hpp.ratio_arithmetic.h9"></a> 557 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_lcm__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic._code__phrase_role__identifier__ratio_lcm__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_lcm</span><span class="special"><></span></code></a> 558 </h6> 559<p> 560 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 561 </p> 562<p> 563 This extension of the C++ standard helps in the definition of some <span class="bold"><strong>Boost.MPL</strong></span> numeric metafunctions. 564 </p> 565<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_lcm</span> <span class="special">{</span> 566 <span class="keyword">typedef</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="identifier">type</span><span class="special">;</span> 567<span class="special">};</span> 568</pre> 569<p> 570 The nested typedef <code class="computeroutput"><span class="identifier">type</span></code> 571 is a synonym for <code class="computeroutput"><span class="identifier">ratio</span><span class="special"><</span><span class="identifier">lcm_c</span><span class="special"><</span><span class="identifier">intmax_t</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">num</span><span class="special">>::</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">gcd_c</span><span class="special"><</span><span class="identifier">intmax_t</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">::</span><span class="identifier">den</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">::</span><span class="identifier">den</span><span class="special">>::</span><span class="identifier">value</span><span class="special">>::</span><span class="identifier">type</span></code>. 572 </p> 573</div> 574<div class="section"> 575<div class="titlepage"><div><div><h5 class="title"> 576<a name="ratio.reference.std.ratio_hpp.ratio_comparison"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio</span></code> Comparison</a> 577</h5></div></div></div> 578<h6> 579<a name="ratio.reference.std.ratio_hpp.ratio_comparison.h0"></a> 580 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_equal__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_equal__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_equal</span><span class="special"><></span></code></a> 581 </h6> 582<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_equal</span> 583 <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="special">></span> <span class="special">{};</span> 584</pre> 585<p> 586 If R1::num == R2::num && R1::den == R2::den, ratio_equal derives 587 from true_type, else derives from false_type. 588 </p> 589<h6> 590<a name="ratio.reference.std.ratio_hpp.ratio_comparison.h1"></a> 591 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_not_equal__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_not_equal__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_not_equal</span><span class="special"><></span></code></a> 592 </h6> 593<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_not_equal</span> 594 <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="special">!</span><span class="identifier">ratio_equal</span><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">>::</span><span class="identifier">value</span><span class="special">></span> <span class="special">{};</span> 595</pre> 596<h6> 597<a name="ratio.reference.std.ratio_hpp.ratio_comparison.h2"></a> 598 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_less__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_less__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_less</span><span class="special"><></span></code></a> 599 </h6> 600<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> 601<span class="keyword">struct</span> <span class="identifier">ratio_less</span> 602 <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="special">[/</span><span class="identifier">see</span> <span class="identifier">below</span><span class="special">]</span> <span class="special">></span> <span class="special">{};</span> 603</pre> 604<p> 605 If R1::num * R2::den < R2::num * R1::den, ratio_less derives from 606 true_type, else derives from false_type. 607 </p> 608<h6> 609<a name="ratio.reference.std.ratio_hpp.ratio_comparison.h3"></a> 610 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_less_equal__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_less_equal__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_less_equal</span><span class="special"><></span></code></a> 611 </h6> 612<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_less_equal</span> 613 <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="special">!</span><span class="identifier">ratio_less</span><span class="special"><</span><span class="identifier">R2</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">>::</span><span class="identifier">value</span><span class="special">></span> <span class="special">{};</span> 614</pre> 615<h6> 616<a name="ratio.reference.std.ratio_hpp.ratio_comparison.h4"></a> 617 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_greater__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_greater__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_greater</span><span class="special"><></span></code></a> 618 </h6> 619<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_greater</span> 620 <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">ratio_less</span><span class="special"><</span><span class="identifier">R2</span><span class="special">,</span> <span class="identifier">R1</span><span class="special">>::</span><span class="identifier">value</span><span class="special">></span> <span class="special">{};</span> 621</pre> 622<h6> 623<a name="ratio.reference.std.ratio_hpp.ratio_comparison.h5"></a> 624 <span class="phrase"><a name="ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_greater_equal__phrase__phrase_role__special___lt__gt___phrase___code_"></a></span><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison._code__phrase_role__identifier__ratio_greater_equal__phrase__phrase_role__special___lt__gt___phrase___code_"><code class="computeroutput"><span class="identifier">ratio_greater_equal</span><span class="special"><></span></code></a> 625 </h6> 626<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">R2</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_greater_equal</span> 627 <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="special">!</span><span class="identifier">ratio_less</span><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">>::</span><span class="identifier">value</span><span class="special">></span> <span class="special">{};</span> 628</pre> 629</div> 630<div class="section"> 631<div class="titlepage"><div><div><h5 class="title"> 632<a name="ratio.reference.std.ratio_hpp.ratio_si_typedefs"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_si_typedefs" title="SI typedefs">SI 633 typedefs</a> 634</h5></div></div></div> 635<p> 636 The <a href="http://en.wikipedia.org/wiki/SI_prefix#List_of_SI_prefixes" target="_top">International 637 System of Units</a> specifies twenty SI prefixes. <span class="bold"><strong>Boost.Ratio</strong></span> 638 defines all except <code class="computeroutput"><span class="identifier">yocto</span></code>, 639 <code class="computeroutput"><span class="identifier">zepto</span></code>, <code class="computeroutput"><span class="identifier">zetta</span></code>, and <code class="computeroutput"><span class="identifier">yotta</span></code> 640 </p> 641<pre class="programlisting"><span class="comment">// convenience SI typedefs</span> 642<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000000000000LL</span><span class="special">></span> <span class="identifier">atto</span><span class="special">;</span> 643<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000000000LL</span><span class="special">></span> <span class="identifier">femto</span><span class="special">;</span> 644<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000000LL</span><span class="special">></span> <span class="identifier">pico</span><span class="special">;</span> 645<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000000LL</span><span class="special">></span> <span class="identifier">nano</span><span class="special">;</span> 646<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000000LL</span><span class="special">></span> <span class="identifier">micro</span><span class="special">;</span> 647<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">1000LL</span><span class="special">></span> <span class="identifier">milli</span><span class="special">;</span> 648<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">100LL</span><span class="special">></span> <span class="identifier">centi</span><span class="special">;</span> 649<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1LL</span><span class="special">,</span> <span class="number">10LL</span><span class="special">></span> <span class="identifier">deci</span><span class="special">;</span> 650<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">10LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">deca</span><span class="special">;</span> 651<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">100LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">hecto</span><span class="special">;</span> 652<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">1000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">kilo</span><span class="special">;</span> 653<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">1000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">mega</span><span class="special">;</span> 654<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">1000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">giga</span><span class="special">;</span> 655<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">1000000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">tera</span><span class="special">;</span> 656<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span> <span class="number">1000000000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">peta</span><span class="special">;</span> 657<span class="keyword">typedef</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><span class="special"><</span><span class="number">1000000000000000000LL</span><span class="special">,</span> <span class="number">1LL</span><span class="special">></span> <span class="identifier">exa</span><span class="special">;</span> 658</pre> 659</div> 660<div class="section"> 661<div class="titlepage"><div><div><h5 class="title"> 662<a name="ratio.reference.std.ratio_hpp.ratio_iec_typedefs"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_iec_typedefs" title="IEC typedefs">IEC 663 typedefs</a> 664</h5></div></div></div> 665<p> 666 Included only if <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> is defined. 667 </p> 668<p> 669 The <a href="http://http://en.wikipedia.org/wiki/Binary_prefix#Specific_units_of_IEC_60027-2_A.2_and_ISO.2FIEC_80000" target="_top">Specific 670 units of IEC 60027-2 A.2 and ISO/IEC 80000</a> specifies height IEC 671 prefixes. <span class="bold"><strong>Boost.Ratio</strong></span> defines all except 672 <code class="computeroutput"><span class="identifier">zebi</span></code> and <code class="computeroutput"><span class="identifier">yobi</span></code> 673 </p> 674<pre class="programlisting"><span class="comment">// convenience ETC typedefs</span> 675<span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">></span> <span class="identifier">kibi</span><span class="special">;</span> 676<span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <span class="identifier">mebi</span><span class="special">;</span> 677<span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <span class="identifier">gibi</span><span class="special">;</span> 678<span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <span class="identifier">tebi</span><span class="special">;</span> 679<span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <span class="identifier">pebi</span><span class="special">;</span> 680<span class="keyword">typedef</span> <span class="identifier">ratio</span><span class="special"><</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">*</span><span class="number">1024LL</span><span class="special">></span> <span class="identifier">exbi</span><span class="special">;</span> 681</pre> 682</div> 683<div class="section"> 684<div class="titlepage"><div><div><h5 class="title"> 685<a name="ratio.reference.std.ratio_hpp.limitations"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.limitations" title="Limitations">Limitations</a> 686</h5></div></div></div> 687<p> 688 The following are limitations of Boost.Ratio relative to the specification 689 in the C++0x draft standard: 690 </p> 691<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 692<li class="listitem"> 693 Four of the SI units typedefs -- <code class="computeroutput"><span class="identifier">yocto</span></code>, 694 <code class="computeroutput"><span class="identifier">zepto</span></code>, <code class="computeroutput"><span class="identifier">zetta</span></code>, and <code class="computeroutput"><span class="identifier">yotta</span></code> 695 -- are to be conditionally supported, if the range of <code class="computeroutput"><span class="identifier">intmax_t</span></code> allows, but are not supported 696 by <span class="bold"><strong>Boost.Ratio</strong></span>. 697 </li> 698<li class="listitem"> 699 Ratio values should be of type static <code class="computeroutput"><span class="keyword">constexpr</span> 700 <span class="identifier">intmax_t</span></code> (see <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3135.html#1122" target="_top">Ratio 701 values should be constexpr</a>), but for compiler not supporting 702 <code class="computeroutput"><span class="keyword">constexpr</span></code> today, <span class="bold"><strong>Boost.Ratio</strong></span> uses <code class="computeroutput"><span class="keyword">static</span> 703 <span class="keyword">const</span> <span class="identifier">intmax_t</span></code> 704 instead. 705 </li> 706<li class="listitem"> 707 Rational arithmetic should use template aliases (see <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3134.html#921" target="_top">Rational 708 Arithmetic should use template aliases</a>), but those are not 709 available in C++03, so inheritance is used instead. 710 </li> 711</ul></div> 712</div> 713<div class="section"> 714<div class="titlepage"><div><div><h5 class="title"> 715<a name="ratio.reference.std.ratio_hpp.extensions"></a><a class="link" href="reference.html#ratio.reference.std.ratio_hpp.extensions" title="Extensions">Extensions</a> 716</h5></div></div></div> 717<p> 718 When <a class="link" href="reference.html#ratio.reference.config_hpp.ext" title="Extensions"><code class="computeroutput"><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code></a> 719 is defined <span class="bold"><strong>Boost.Ratio</strong></span> provides the 720 following extensions: 721 </p> 722<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 723<li class="listitem"> 724 Extends the requirements of the C++0x draft standard by making the 725 copy constructor and copy assignment operator have the same normalized 726 form (see <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3133.html#1281" target="_top">copy 727 constructor and assignment between ratios having the same normalized 728 form</a>). 729 </li> 730<li class="listitem"> 731 More C++ standard like metafunctions applied to ratio types, like 732 __static_abs or __static_negate. 733 </li> 734<li class="listitem"> 735 An __Boost_Mpl rational constant concept and the associated __Boost_Mpl 736 arithmetic and comparison specializations including __numeric_cast, 737 __plus, __equal_to between others. 738 </li> 739</ul></div> 740</div> 741</div> 742</div> 743<div class="section"> 744<div class="titlepage"><div><div><h3 class="title"> 745<a name="ratio.reference.io"></a><a class="link" href="reference.html#ratio.reference.io" title="Ratio I/O">Ratio I/O</a> 746</h3></div></div></div> 747<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.io.ratio_io_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt></dl></div> 748<div class="section"> 749<div class="titlepage"><div><div><h4 class="title"> 750<a name="ratio.reference.io.ratio_io_hpp"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp" title="Header <boost/ratio/ratio_io.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">ratio_io</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 751</h4></div></div></div> 752<div class="toc"><dl class="toc"> 753<dt><span class="section"><a href="reference.html#ratio.reference.io.ratio_io_hpp.ratio_string">Template 754 Class <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><></span></code></a></span></dt> 755<dt><span class="section"><a href="reference.html#ratio.reference.io.ratio_io_hpp.spe">Specializations 756 for <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><></span></code></a></span></dt> 757</dl></div> 758<p> 759 This header provides <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><></span></code> which can generate a textual representation 760 of a <code class="computeroutput"><span class="identifier">ratio</span><span class="special"><></span></code> 761 in the form of a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><></span></code>. 762 These strings can be useful for I/O. 763 </p> 764<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 765 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Ratio</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special">;</span> 766 767 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 768 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 769 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 770 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 771 772 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 773 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 774 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 775 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 776 777 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 778 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 779 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 780 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 781 782 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 783 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 784 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 785 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 786 787 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 788 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 789 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 790 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 791 792 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 793 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 794 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 795 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 796 797 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 798 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 799 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 800 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 801 802 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 803 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 804 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 805 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 806 807 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 808 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 809 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 810 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 811 812 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 813 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 814 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 815 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 816 817 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 818 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 819 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 820 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 821 822 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 823 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 824 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 825 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 826 827 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 828 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 829 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 830 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 831 832 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 833 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 834 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 835 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 836 837 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 838 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 839 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 840 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 841 842 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 843 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 844 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 845 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 846 847 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kibi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 848 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kibi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 849 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kibi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 850 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kibi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 851 852 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mebi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 853 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mebi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 854 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mebi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 855 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mebi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 856 857 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">gibi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 858 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">gibi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 859 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">gibi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 860 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">gibi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 861 862 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tebi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 863 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tebi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 864 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tebi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 865 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tebi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 866 867 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pebi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 868 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pebi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 869 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pebi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 870 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pebi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 871 872 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">yobi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">>;</span> 873 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">yobi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">>;</span> 874 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">yobi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">>;</span> 875 <span class="keyword">template</span> <span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">yobi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">>;</span> 876 877<span class="special">}</span> 878</pre> 879<div class="section"> 880<div class="titlepage"><div><div><h5 class="title"> 881<a name="ratio.reference.io.ratio_io_hpp.ratio_string"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp.ratio_string" title="Template Class ratio_string<>">Template 882 Class <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><></span></code></a> 883</h5></div></div></div> 884<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Ratio</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 885<span class="keyword">struct</span> <span class="identifier">ratio_string</span> 886<span class="special">{</span> 887 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">symbol</span><span class="special">();</span> 888 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">prefix</span><span class="special">();</span> 889 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">short_name</span><span class="special">();</span> <span class="comment">// DEPRECATED V2</span> 890 <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="identifier">long_name</span><span class="special">();</span> <span class="comment">// DEPRECATED V2</span> 891<span class="special">};</span> 892</pre> 893<p> 894 The class template ratio_string provides textual representations of the 895 associated ratio appropriate for the character type charT. 896 </p> 897<p> 898 The primary template provides generic strings. Specializations provide 899 the same static member functions but these functions return the English 900 SI prefix and symbol names as specified by the General Conference on 901 Weights and Measures. 902 </p> 903<div class="section"> 904<div class="titlepage"><div><div><h6 class="title"> 905<a name="ratio.reference.io.ratio_io_hpp.ratio_string.prefix"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp.ratio_string.prefix" title="Static Member function prefix()">Static 906 Member function <code class="computeroutput"><span class="identifier">prefix</span><span class="special">()</span></code></a> 907</h6></div></div></div> 908<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Ratio</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 909<span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">></span> 910<span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">Ratio</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>::</span><span class="identifier">prefix</span><span class="special">();</span> 911</pre> 912<p> 913 <span class="bold"><strong>Returns</strong></span>: A basic_string of the form: 914 [Ratio::num/Ratio::den] 915 </p> 916<p> 917 <span class="bold"><strong>Example</strong></span>: <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">ratio</span><span class="special"><</span><span class="number">2</span><span class="special">,</span> <span class="number">60</span><span class="special">>,</span> <span class="keyword">wchar_t</span><span class="special">>::</span><span class="identifier">prefix</span><span class="special">()</span></code> returns <code class="computeroutput"><span class="identifier">L</span><span class="string">"[1/30]"</span></code>. 918 </p> 919</div> 920<div class="section"> 921<div class="titlepage"><div><div><h6 class="title"> 922<a name="ratio.reference.io.ratio_io_hpp.ratio_string.symbol"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp.ratio_string.symbol" title="Static Member function symbol()">Static 923 Member function <code class="computeroutput"><span class="identifier">symbol</span><span class="special">()</span></code></a> 924</h6></div></div></div> 925<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Ratio</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 926<span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">></span> 927<span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">Ratio</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>::</span><span class="identifier">symbol</span><span class="special">();</span> 928</pre> 929<p> 930 <span class="bold"><strong>Returns</strong></span>: prefix(). 931 </p> 932</div> 933<div class="section"> 934<div class="titlepage"><div><div><h6 class="title"> 935<a name="ratio.reference.io.ratio_io_hpp.ratio_string.long_name"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp.ratio_string.long_name" title="Static Member function long_name() DEPRECATED V2">Static 936 Member function <code class="computeroutput"><span class="identifier">long_name</span><span class="special">()</span></code> DEPRECATED V2</a> 937</h6></div></div></div> 938<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Ratio</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 939<span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">></span> 940<span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">Ratio</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>::</span><span class="identifier">long_name</span><span class="special">();</span> 941</pre> 942<p> 943 <span class="bold"><strong>Returns</strong></span>: prefix(). 944 </p> 945</div> 946<div class="section"> 947<div class="titlepage"><div><div><h6 class="title"> 948<a name="ratio.reference.io.ratio_io_hpp.ratio_string.short_name"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp.ratio_string.short_name" title="Static Member function short_name() DEPRECATED V2">Static 949 Member function <code class="computeroutput"><span class="identifier">short_name</span><span class="special">()</span></code> DEPRECATED V2</a> 950</h6></div></div></div> 951<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Ratio</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">CharT</span><span class="special">></span> 952<span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">charT</span><span class="special">></span> 953<span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">Ratio</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">>::</span><span class="identifier">short_name</span><span class="special">();</span> 954</pre> 955<p> 956 <span class="bold"><strong>Returns</strong></span>: symbol(). 957 </p> 958</div> 959</div> 960<div class="section"> 961<div class="titlepage"><div><div><h5 class="title"> 962<a name="ratio.reference.io.ratio_io_hpp.spe"></a><a class="link" href="reference.html#ratio.reference.io.ratio_io_hpp.spe" title="Specializations for ratio_string<>">Specializations 963 for <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><></span></code></a> 964</h5></div></div></div> 965<p> 966 With compilers supporting char16_t and char32_t and with a standard library 967 don't providing std::u16string and std::u32string you will need to define 968 the macros BOOST_NO_CXX11_U16STRING and BOOST_NO_CXX11_U32STRING until 969 Boost.Config defines them. 970 </p> 971<p> 972 For each specialization the table gives the return value for <code class="computeroutput"><span class="identifier">prefix</span><span class="special">()</span></code> 973 and <code class="computeroutput"><span class="identifier">symbol</span><span class="special">()</span></code>. 974 </p> 975<div class="table"> 976<a name="ratio.reference.io.ratio_io_hpp.spe.the_return_values_of_specializations_of_ratio_string"></a><p class="title"><b>Table 34.1. The return values of specializations of ratio_string</b></p> 977<div class="table-contents"><table class="table" summary="The return values of specializations of ratio_string"> 978<colgroup> 979<col> 980<col> 981<col> 982</colgroup> 983<thead><tr> 984<th> 985 <p> 986 Specialization 987 </p> 988 </th> 989<th> 990 <p> 991 <code class="computeroutput"><span class="identifier">prefix</span><span class="special">()</span></code> 992 </p> 993 </th> 994<th> 995 <p> 996 <code class="computeroutput"><span class="identifier">symbol</span><span class="special">()</span></code> 997 </p> 998 </th> 999</tr></thead> 1000<tbody> 1001<tr> 1002<td> 1003 <p> 1004 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1005 </p> 1006 </td> 1007<td> 1008 <p> 1009 <code class="computeroutput"><span class="string">"atto"</span></code> 1010 </p> 1011 </td> 1012<td> 1013 <p> 1014 <code class="computeroutput"><span class="string">"a"</span></code> 1015 </p> 1016 </td> 1017</tr> 1018<tr> 1019<td> 1020 <p> 1021 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1022 </p> 1023 </td> 1024<td> 1025 <p> 1026 <code class="computeroutput"><span class="identifier">u</span><span class="string">"atto"</span></code> 1027 </p> 1028 </td> 1029<td> 1030 <p> 1031 <code class="computeroutput"><span class="identifier">u</span><span class="string">"a"</span></code> 1032 </p> 1033 </td> 1034</tr> 1035<tr> 1036<td> 1037 <p> 1038 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1039 </p> 1040 </td> 1041<td> 1042 <p> 1043 <code class="computeroutput"><span class="identifier">U</span><span class="string">"atto"</span></code> 1044 </p> 1045 </td> 1046<td> 1047 <p> 1048 <code class="computeroutput"><span class="identifier">U</span><span class="string">"a"</span></code> 1049 </p> 1050 </td> 1051</tr> 1052<tr> 1053<td> 1054 <p> 1055 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">atto</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1056 </p> 1057 </td> 1058<td> 1059 <p> 1060 <code class="computeroutput"><span class="identifier">L</span><span class="string">"atto"</span></code> 1061 </p> 1062 </td> 1063<td> 1064 <p> 1065 <code class="computeroutput"><span class="identifier">L</span><span class="string">"a"</span></code> 1066 </p> 1067 </td> 1068</tr> 1069<tr> 1070<td> 1071 <p> 1072 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1073 </p> 1074 </td> 1075<td> 1076 <p> 1077 <code class="computeroutput"><span class="string">"femto"</span></code> 1078 </p> 1079 </td> 1080<td> 1081 <p> 1082 <code class="computeroutput"><span class="string">"f"</span></code> 1083 </p> 1084 </td> 1085</tr> 1086<tr> 1087<td> 1088 <p> 1089 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1090 </p> 1091 </td> 1092<td> 1093 <p> 1094 <code class="computeroutput"><span class="identifier">u</span><span class="string">"femto"</span></code> 1095 </p> 1096 </td> 1097<td> 1098 <p> 1099 <code class="computeroutput"><span class="identifier">u</span><span class="string">"f"</span></code> 1100 </p> 1101 </td> 1102</tr> 1103<tr> 1104<td> 1105 <p> 1106 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1107 </p> 1108 </td> 1109<td> 1110 <p> 1111 <code class="computeroutput"><span class="identifier">U</span><span class="string">"femto"</span></code> 1112 </p> 1113 </td> 1114<td> 1115 <p> 1116 <code class="computeroutput"><span class="identifier">U</span><span class="string">"f"</span></code> 1117 </p> 1118 </td> 1119</tr> 1120<tr> 1121<td> 1122 <p> 1123 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">femto</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1124 </p> 1125 </td> 1126<td> 1127 <p> 1128 <code class="computeroutput"><span class="identifier">L</span><span class="string">"femto"</span></code> 1129 </p> 1130 </td> 1131<td> 1132 <p> 1133 <code class="computeroutput"><span class="identifier">L</span><span class="string">"f"</span></code> 1134 </p> 1135 </td> 1136</tr> 1137<tr> 1138<td> 1139 <p> 1140 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1141 </p> 1142 </td> 1143<td> 1144 <p> 1145 <code class="computeroutput"><span class="string">"pico"</span></code> 1146 </p> 1147 </td> 1148<td> 1149 <p> 1150 <code class="computeroutput"><span class="string">"p"</span></code> 1151 </p> 1152 </td> 1153</tr> 1154<tr> 1155<td> 1156 <p> 1157 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1158 </p> 1159 </td> 1160<td> 1161 <p> 1162 <code class="computeroutput"><span class="identifier">u</span><span class="string">"pico"</span></code> 1163 </p> 1164 </td> 1165<td> 1166 <p> 1167 <code class="computeroutput"><span class="identifier">u</span><span class="string">"p"</span></code> 1168 </p> 1169 </td> 1170</tr> 1171<tr> 1172<td> 1173 <p> 1174 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1175 </p> 1176 </td> 1177<td> 1178 <p> 1179 <code class="computeroutput"><span class="identifier">U</span><span class="string">"pico"</span></code> 1180 </p> 1181 </td> 1182<td> 1183 <p> 1184 <code class="computeroutput"><span class="identifier">U</span><span class="string">"p"</span></code> 1185 </p> 1186 </td> 1187</tr> 1188<tr> 1189<td> 1190 <p> 1191 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">pico</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1192 </p> 1193 </td> 1194<td> 1195 <p> 1196 <code class="computeroutput"><span class="identifier">L</span><span class="string">"pico"</span></code> 1197 </p> 1198 </td> 1199<td> 1200 <p> 1201 <code class="computeroutput"><span class="identifier">L</span><span class="string">"p"</span></code> 1202 </p> 1203 </td> 1204</tr> 1205<tr> 1206<td> 1207 <p> 1208 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1209 </p> 1210 </td> 1211<td> 1212 <p> 1213 <code class="computeroutput"><span class="string">"nano"</span></code> 1214 </p> 1215 </td> 1216<td> 1217 <p> 1218 <code class="computeroutput"><span class="string">"a"</span></code> 1219 </p> 1220 </td> 1221</tr> 1222<tr> 1223<td> 1224 <p> 1225 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1226 </p> 1227 </td> 1228<td> 1229 <p> 1230 <code class="computeroutput"><span class="identifier">u</span><span class="string">"nano"</span></code> 1231 </p> 1232 </td> 1233<td> 1234 <p> 1235 <code class="computeroutput"><span class="identifier">u</span><span class="string">"a"</span></code> 1236 </p> 1237 </td> 1238</tr> 1239<tr> 1240<td> 1241 <p> 1242 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1243 </p> 1244 </td> 1245<td> 1246 <p> 1247 <code class="computeroutput"><span class="identifier">U</span><span class="string">"nano"</span></code> 1248 </p> 1249 </td> 1250<td> 1251 <p> 1252 <code class="computeroutput"><span class="identifier">U</span><span class="string">"a"</span></code> 1253 </p> 1254 </td> 1255</tr> 1256<tr> 1257<td> 1258 <p> 1259 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">nano</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1260 </p> 1261 </td> 1262<td> 1263 <p> 1264 <code class="computeroutput"><span class="identifier">L</span><span class="string">"nano"</span></code> 1265 </p> 1266 </td> 1267<td> 1268 <p> 1269 <code class="computeroutput"><span class="identifier">L</span><span class="string">"a"</span></code> 1270 </p> 1271 </td> 1272</tr> 1273<tr> 1274<td> 1275 <p> 1276 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1277 </p> 1278 </td> 1279<td> 1280 <p> 1281 <code class="computeroutput"><span class="string">"micro"</span></code> 1282 </p> 1283 </td> 1284<td> 1285 <p> 1286 <code class="computeroutput"><span class="identifier">u8</span><span class="string">"\u00B5"</span></code> 1287 </p> 1288 </td> 1289</tr> 1290<tr> 1291<td> 1292 <p> 1293 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1294 </p> 1295 </td> 1296<td> 1297 <p> 1298 <code class="computeroutput"><span class="identifier">u</span><span class="string">"micro"</span></code> 1299 </p> 1300 </td> 1301<td> 1302 <p> 1303 <code class="computeroutput"><span class="identifier">u</span><span class="string">"\u00B5"</span></code> 1304 </p> 1305 </td> 1306</tr> 1307<tr> 1308<td> 1309 <p> 1310 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1311 </p> 1312 </td> 1313<td> 1314 <p> 1315 <code class="computeroutput"><span class="identifier">U</span><span class="string">"micro"</span></code> 1316 </p> 1317 </td> 1318<td> 1319 <p> 1320 <code class="computeroutput"><span class="identifier">U</span><span class="string">"\u00B5"</span></code> 1321 </p> 1322 </td> 1323</tr> 1324<tr> 1325<td> 1326 <p> 1327 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">micro</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1328 </p> 1329 </td> 1330<td> 1331 <p> 1332 <code class="computeroutput"><span class="identifier">L</span><span class="string">"micro"</span></code> 1333 </p> 1334 </td> 1335<td> 1336 <p> 1337 <code class="computeroutput"><span class="identifier">Lu8</span><span class="string">"\u00B5"</span></code> 1338 </p> 1339 </td> 1340</tr> 1341<tr> 1342<td> 1343 <p> 1344 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1345 </p> 1346 </td> 1347<td> 1348 <p> 1349 <code class="computeroutput"><span class="string">"milli"</span></code> 1350 </p> 1351 </td> 1352<td> 1353 <p> 1354 <code class="computeroutput"><span class="string">"m"</span></code> 1355 </p> 1356 </td> 1357</tr> 1358<tr> 1359<td> 1360 <p> 1361 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1362 </p> 1363 </td> 1364<td> 1365 <p> 1366 <code class="computeroutput"><span class="identifier">u</span><span class="string">"milli"</span></code> 1367 </p> 1368 </td> 1369<td> 1370 <p> 1371 <code class="computeroutput"><span class="identifier">u</span><span class="string">"m"</span></code> 1372 </p> 1373 </td> 1374</tr> 1375<tr> 1376<td> 1377 <p> 1378 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1379 </p> 1380 </td> 1381<td> 1382 <p> 1383 <code class="computeroutput"><span class="identifier">U</span><span class="string">"milli"</span></code> 1384 </p> 1385 </td> 1386<td> 1387 <p> 1388 <code class="computeroutput"><span class="identifier">U</span><span class="string">"m"</span></code> 1389 </p> 1390 </td> 1391</tr> 1392<tr> 1393<td> 1394 <p> 1395 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">milli</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1396 </p> 1397 </td> 1398<td> 1399 <p> 1400 <code class="computeroutput"><span class="identifier">L</span><span class="string">"milli"</span></code> 1401 </p> 1402 </td> 1403<td> 1404 <p> 1405 <code class="computeroutput"><span class="identifier">L</span><span class="string">"m"</span></code> 1406 </p> 1407 </td> 1408</tr> 1409<tr> 1410<td> 1411 <p> 1412 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1413 </p> 1414 </td> 1415<td> 1416 <p> 1417 <code class="computeroutput"><span class="string">"centi"</span></code> 1418 </p> 1419 </td> 1420<td> 1421 <p> 1422 <code class="computeroutput"><span class="string">"c"</span></code> 1423 </p> 1424 </td> 1425</tr> 1426<tr> 1427<td> 1428 <p> 1429 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1430 </p> 1431 </td> 1432<td> 1433 <p> 1434 <code class="computeroutput"><span class="identifier">u</span><span class="string">"centi"</span></code> 1435 </p> 1436 </td> 1437<td> 1438 <p> 1439 <code class="computeroutput"><span class="identifier">u</span><span class="string">"c"</span></code> 1440 </p> 1441 </td> 1442</tr> 1443<tr> 1444<td> 1445 <p> 1446 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1447 </p> 1448 </td> 1449<td> 1450 <p> 1451 <code class="computeroutput"><span class="identifier">U</span><span class="string">"centi"</span></code> 1452 </p> 1453 </td> 1454<td> 1455 <p> 1456 <code class="computeroutput"><span class="identifier">U</span><span class="string">"c"</span></code> 1457 </p> 1458 </td> 1459</tr> 1460<tr> 1461<td> 1462 <p> 1463 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">centi</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1464 </p> 1465 </td> 1466<td> 1467 <p> 1468 <code class="computeroutput"><span class="identifier">L</span><span class="string">"centi"</span></code> 1469 </p> 1470 </td> 1471<td> 1472 <p> 1473 <code class="computeroutput"><span class="identifier">L</span><span class="string">"c"</span></code> 1474 </p> 1475 </td> 1476</tr> 1477<tr> 1478<td> 1479 <p> 1480 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1481 </p> 1482 </td> 1483<td> 1484 <p> 1485 <code class="computeroutput"><span class="string">"deci"</span></code> 1486 </p> 1487 </td> 1488<td> 1489 <p> 1490 <code class="computeroutput"><span class="string">"d"</span></code> 1491 </p> 1492 </td> 1493</tr> 1494<tr> 1495<td> 1496 <p> 1497 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1498 </p> 1499 </td> 1500<td> 1501 <p> 1502 <code class="computeroutput"><span class="identifier">u</span><span class="string">"deci"</span></code> 1503 </p> 1504 </td> 1505<td> 1506 <p> 1507 <code class="computeroutput"><span class="identifier">u</span><span class="string">"d"</span></code> 1508 </p> 1509 </td> 1510</tr> 1511<tr> 1512<td> 1513 <p> 1514 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1515 </p> 1516 </td> 1517<td> 1518 <p> 1519 <code class="computeroutput"><span class="identifier">U</span><span class="string">"deci"</span></code> 1520 </p> 1521 </td> 1522<td> 1523 <p> 1524 <code class="computeroutput"><span class="identifier">U</span><span class="string">"d"</span></code> 1525 </p> 1526 </td> 1527</tr> 1528<tr> 1529<td> 1530 <p> 1531 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deci</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1532 </p> 1533 </td> 1534<td> 1535 <p> 1536 <code class="computeroutput"><span class="identifier">L</span><span class="string">"deci"</span></code> 1537 </p> 1538 </td> 1539<td> 1540 <p> 1541 <code class="computeroutput"><span class="identifier">L</span><span class="string">"d"</span></code> 1542 </p> 1543 </td> 1544</tr> 1545<tr> 1546<td> 1547 <p> 1548 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1549 </p> 1550 </td> 1551<td> 1552 <p> 1553 <code class="computeroutput"><span class="string">"deca"</span></code> 1554 </p> 1555 </td> 1556<td> 1557 <p> 1558 <code class="computeroutput"><span class="string">"da"</span></code> 1559 </p> 1560 </td> 1561</tr> 1562<tr> 1563<td> 1564 <p> 1565 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1566 </p> 1567 </td> 1568<td> 1569 <p> 1570 <code class="computeroutput"><span class="identifier">u</span><span class="string">"deca"</span></code> 1571 </p> 1572 </td> 1573<td> 1574 <p> 1575 <code class="computeroutput"><span class="identifier">u</span><span class="string">"da"</span></code> 1576 </p> 1577 </td> 1578</tr> 1579<tr> 1580<td> 1581 <p> 1582 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1583 </p> 1584 </td> 1585<td> 1586 <p> 1587 <code class="computeroutput"><span class="identifier">U</span><span class="string">"deca"</span></code> 1588 </p> 1589 </td> 1590<td> 1591 <p> 1592 <code class="computeroutput"><span class="identifier">U</span><span class="string">"da"</span></code> 1593 </p> 1594 </td> 1595</tr> 1596<tr> 1597<td> 1598 <p> 1599 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">deca</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1600 </p> 1601 </td> 1602<td> 1603 <p> 1604 <code class="computeroutput"><span class="identifier">L</span><span class="string">"deca"</span></code> 1605 </p> 1606 </td> 1607<td> 1608 <p> 1609 <code class="computeroutput"><span class="identifier">L</span><span class="string">"da"</span></code> 1610 </p> 1611 </td> 1612</tr> 1613<tr> 1614<td> 1615 <p> 1616 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1617 </p> 1618 </td> 1619<td> 1620 <p> 1621 <code class="computeroutput"><span class="string">"hecto"</span></code> 1622 </p> 1623 </td> 1624<td> 1625 <p> 1626 <code class="computeroutput"><span class="string">"h"</span></code> 1627 </p> 1628 </td> 1629</tr> 1630<tr> 1631<td> 1632 <p> 1633 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1634 </p> 1635 </td> 1636<td> 1637 <p> 1638 <code class="computeroutput"><span class="identifier">u</span><span class="string">"hecto"</span></code> 1639 </p> 1640 </td> 1641<td> 1642 <p> 1643 <code class="computeroutput"><span class="identifier">u</span><span class="string">"h"</span></code> 1644 </p> 1645 </td> 1646</tr> 1647<tr> 1648<td> 1649 <p> 1650 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1651 </p> 1652 </td> 1653<td> 1654 <p> 1655 <code class="computeroutput"><span class="identifier">U</span><span class="string">"hecto"</span></code> 1656 </p> 1657 </td> 1658<td> 1659 <p> 1660 <code class="computeroutput"><span class="identifier">U</span><span class="string">"h"</span></code> 1661 </p> 1662 </td> 1663</tr> 1664<tr> 1665<td> 1666 <p> 1667 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">hecto</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1668 </p> 1669 </td> 1670<td> 1671 <p> 1672 <code class="computeroutput"><span class="identifier">L</span><span class="string">"hecto"</span></code> 1673 </p> 1674 </td> 1675<td> 1676 <p> 1677 <code class="computeroutput"><span class="identifier">L</span><span class="string">"h"</span></code> 1678 </p> 1679 </td> 1680</tr> 1681<tr> 1682<td> 1683 <p> 1684 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1685 </p> 1686 </td> 1687<td> 1688 <p> 1689 <code class="computeroutput"><span class="string">"kilo"</span></code> 1690 </p> 1691 </td> 1692<td> 1693 <p> 1694 <code class="computeroutput"><span class="string">"k"</span></code> 1695 </p> 1696 </td> 1697</tr> 1698<tr> 1699<td> 1700 <p> 1701 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1702 </p> 1703 </td> 1704<td> 1705 <p> 1706 <code class="computeroutput"><span class="identifier">u</span><span class="string">"kilo"</span></code> 1707 </p> 1708 </td> 1709<td> 1710 <p> 1711 <code class="computeroutput"><span class="identifier">u</span><span class="string">"k"</span></code> 1712 </p> 1713 </td> 1714</tr> 1715<tr> 1716<td> 1717 <p> 1718 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1719 </p> 1720 </td> 1721<td> 1722 <p> 1723 <code class="computeroutput"><span class="identifier">U</span><span class="string">"kilo"</span></code> 1724 </p> 1725 </td> 1726<td> 1727 <p> 1728 <code class="computeroutput"><span class="identifier">U</span><span class="string">"k"</span></code> 1729 </p> 1730 </td> 1731</tr> 1732<tr> 1733<td> 1734 <p> 1735 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">kilo</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1736 </p> 1737 </td> 1738<td> 1739 <p> 1740 <code class="computeroutput"><span class="identifier">L</span><span class="string">"kilo"</span></code> 1741 </p> 1742 </td> 1743<td> 1744 <p> 1745 <code class="computeroutput"><span class="identifier">L</span><span class="string">"k"</span></code> 1746 </p> 1747 </td> 1748</tr> 1749<tr> 1750<td> 1751 <p> 1752 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1753 </p> 1754 </td> 1755<td> 1756 <p> 1757 <code class="computeroutput"><span class="string">"mega"</span></code> 1758 </p> 1759 </td> 1760<td> 1761 <p> 1762 <code class="computeroutput"><span class="string">"M"</span></code> 1763 </p> 1764 </td> 1765</tr> 1766<tr> 1767<td> 1768 <p> 1769 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1770 </p> 1771 </td> 1772<td> 1773 <p> 1774 <code class="computeroutput"><span class="identifier">u</span><span class="string">"mega"</span></code> 1775 </p> 1776 </td> 1777<td> 1778 <p> 1779 <code class="computeroutput"><span class="identifier">u</span><span class="string">"M"</span></code> 1780 </p> 1781 </td> 1782</tr> 1783<tr> 1784<td> 1785 <p> 1786 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1787 </p> 1788 </td> 1789<td> 1790 <p> 1791 <code class="computeroutput"><span class="identifier">U</span><span class="string">"mega"</span></code> 1792 </p> 1793 </td> 1794<td> 1795 <p> 1796 <code class="computeroutput"><span class="identifier">U</span><span class="string">"M"</span></code> 1797 </p> 1798 </td> 1799</tr> 1800<tr> 1801<td> 1802 <p> 1803 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">mega</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1804 </p> 1805 </td> 1806<td> 1807 <p> 1808 <code class="computeroutput"><span class="identifier">L</span><span class="string">"mega"</span></code> 1809 </p> 1810 </td> 1811<td> 1812 <p> 1813 <code class="computeroutput"><span class="identifier">L</span><span class="string">"M"</span></code> 1814 </p> 1815 </td> 1816</tr> 1817<tr> 1818<td> 1819 <p> 1820 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1821 </p> 1822 </td> 1823<td> 1824 <p> 1825 <code class="computeroutput"><span class="string">"giga"</span></code> 1826 </p> 1827 </td> 1828<td> 1829 <p> 1830 <code class="computeroutput"><span class="string">"G"</span></code> 1831 </p> 1832 </td> 1833</tr> 1834<tr> 1835<td> 1836 <p> 1837 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1838 </p> 1839 </td> 1840<td> 1841 <p> 1842 <code class="computeroutput"><span class="identifier">u</span><span class="string">"giga"</span></code> 1843 </p> 1844 </td> 1845<td> 1846 <p> 1847 <code class="computeroutput"><span class="identifier">u</span><span class="string">"G"</span></code> 1848 </p> 1849 </td> 1850</tr> 1851<tr> 1852<td> 1853 <p> 1854 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1855 </p> 1856 </td> 1857<td> 1858 <p> 1859 <code class="computeroutput"><span class="identifier">U</span><span class="string">"giga"</span></code> 1860 </p> 1861 </td> 1862<td> 1863 <p> 1864 <code class="computeroutput"><span class="identifier">U</span><span class="string">"G"</span></code> 1865 </p> 1866 </td> 1867</tr> 1868<tr> 1869<td> 1870 <p> 1871 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">giga</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1872 </p> 1873 </td> 1874<td> 1875 <p> 1876 <code class="computeroutput"><span class="identifier">L</span><span class="string">"giga"</span></code> 1877 </p> 1878 </td> 1879<td> 1880 <p> 1881 <code class="computeroutput"><span class="identifier">L</span><span class="string">"G"</span></code> 1882 </p> 1883 </td> 1884</tr> 1885<tr> 1886<td> 1887 <p> 1888 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1889 </p> 1890 </td> 1891<td> 1892 <p> 1893 <code class="computeroutput"><span class="string">"tera"</span></code> 1894 </p> 1895 </td> 1896<td> 1897 <p> 1898 <code class="computeroutput"><span class="string">"T"</span></code> 1899 </p> 1900 </td> 1901</tr> 1902<tr> 1903<td> 1904 <p> 1905 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1906 </p> 1907 </td> 1908<td> 1909 <p> 1910 <code class="computeroutput"><span class="identifier">u</span><span class="string">"tera"</span></code> 1911 </p> 1912 </td> 1913<td> 1914 <p> 1915 <code class="computeroutput"><span class="identifier">u</span><span class="string">"T"</span></code> 1916 </p> 1917 </td> 1918</tr> 1919<tr> 1920<td> 1921 <p> 1922 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1923 </p> 1924 </td> 1925<td> 1926 <p> 1927 <code class="computeroutput"><span class="identifier">U</span><span class="string">"tera"</span></code> 1928 </p> 1929 </td> 1930<td> 1931 <p> 1932 <code class="computeroutput"><span class="identifier">U</span><span class="string">"T"</span></code> 1933 </p> 1934 </td> 1935</tr> 1936<tr> 1937<td> 1938 <p> 1939 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">tera</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 1940 </p> 1941 </td> 1942<td> 1943 <p> 1944 <code class="computeroutput"><span class="identifier">L</span><span class="string">"tera"</span></code> 1945 </p> 1946 </td> 1947<td> 1948 <p> 1949 <code class="computeroutput"><span class="identifier">L</span><span class="string">"T"</span></code> 1950 </p> 1951 </td> 1952</tr> 1953<tr> 1954<td> 1955 <p> 1956 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 1957 </p> 1958 </td> 1959<td> 1960 <p> 1961 <code class="computeroutput"><span class="string">"peta"</span></code> 1962 </p> 1963 </td> 1964<td> 1965 <p> 1966 <code class="computeroutput"><span class="string">"P"</span></code> 1967 </p> 1968 </td> 1969</tr> 1970<tr> 1971<td> 1972 <p> 1973 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 1974 </p> 1975 </td> 1976<td> 1977 <p> 1978 <code class="computeroutput"><span class="identifier">u</span><span class="string">"peta"</span></code> 1979 </p> 1980 </td> 1981<td> 1982 <p> 1983 <code class="computeroutput"><span class="identifier">u</span><span class="string">"P"</span></code> 1984 </p> 1985 </td> 1986</tr> 1987<tr> 1988<td> 1989 <p> 1990 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 1991 </p> 1992 </td> 1993<td> 1994 <p> 1995 <code class="computeroutput"><span class="identifier">U</span><span class="string">"peta"</span></code> 1996 </p> 1997 </td> 1998<td> 1999 <p> 2000 <code class="computeroutput"><span class="identifier">U</span><span class="string">"P"</span></code> 2001 </p> 2002 </td> 2003</tr> 2004<tr> 2005<td> 2006 <p> 2007 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">peta</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 2008 </p> 2009 </td> 2010<td> 2011 <p> 2012 <code class="computeroutput"><span class="identifier">L</span><span class="string">"peta"</span></code> 2013 </p> 2014 </td> 2015<td> 2016 <p> 2017 <code class="computeroutput"><span class="identifier">L</span><span class="string">"P"</span></code> 2018 </p> 2019 </td> 2020</tr> 2021<tr> 2022<td> 2023 <p> 2024 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">char</span><span class="special">></span></code> 2025 </p> 2026 </td> 2027<td> 2028 <p> 2029 <code class="computeroutput"><span class="string">"exa"</span></code> 2030 </p> 2031 </td> 2032<td> 2033 <p> 2034 <code class="computeroutput"><span class="string">"E"</span></code> 2035 </p> 2036 </td> 2037</tr> 2038<tr> 2039<td> 2040 <p> 2041 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">char16_t</span><span class="special">></span></code> 2042 </p> 2043 </td> 2044<td> 2045 <p> 2046 <code class="computeroutput"><span class="identifier">u</span><span class="string">"exa"</span></code> 2047 </p> 2048 </td> 2049<td> 2050 <p> 2051 <code class="computeroutput"><span class="identifier">u</span><span class="string">"E"</span></code> 2052 </p> 2053 </td> 2054</tr> 2055<tr> 2056<td> 2057 <p> 2058 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">char32_t</span><span class="special">></span></code> 2059 </p> 2060 </td> 2061<td> 2062 <p> 2063 <code class="computeroutput"><span class="identifier">U</span><span class="string">"exa"</span></code> 2064 </p> 2065 </td> 2066<td> 2067 <p> 2068 <code class="computeroutput"><span class="identifier">U</span><span class="string">"E"</span></code> 2069 </p> 2070 </td> 2071</tr> 2072<tr> 2073<td> 2074 <p> 2075 <code class="computeroutput"><span class="identifier">ratio_string</span><span class="special"><</span><span class="identifier">exa</span><span class="special">,</span> <span class="keyword">wchar_t</span><span class="special">></span></code> 2076 </p> 2077 </td> 2078<td> 2079 <p> 2080 <code class="computeroutput"><span class="identifier">L</span><span class="string">"exa"</span></code> 2081 </p> 2082 </td> 2083<td> 2084 <p> 2085 <code class="computeroutput"><span class="identifier">L</span><span class="string">"E"</span></code> 2086 </p> 2087 </td> 2088</tr> 2089</tbody> 2090</table></div> 2091</div> 2092<br class="table-break"> 2093</div> 2094</div> 2095</div> 2096<div class="section"> 2097<div class="titlepage"><div><div><h3 class="title"> 2098<a name="ratio.reference.mpl"></a><a class="link" href="reference.html#ratio.reference.mpl" title="Rational Constant">Rational Constant</a> 2099</h3></div></div></div> 2100<div class="toc"><dl class="toc"> 2101<dt><span class="section"><a href="reference.html#ratio.reference.mpl.rational_constant">Rational Constant 2102 Concept</a></span></dt> 2103<dt><span class="section"><a href="reference.html#ratio.reference.mpl.rational_constant_hpp">Header 2104 <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">rational_constant</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2105<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_rational_c_tag_hpp">Header 2106 <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">rational_c_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2107<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_numeric_cast_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">numeric_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2108<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_arithmetic_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">arithmetic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2109<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_plus_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2110<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_minus_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">minus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2111<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_times_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">times</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2112<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_divides_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">divides</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2113<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_gcd_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">gcd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2114<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_lcm_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">lcm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2115<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_negate_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">negate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2116<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_abs_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">abs</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2117<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_sign_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">sign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2118<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_comparison_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">comparison</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2119<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_equal_to_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2120<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_not_equal_to_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">not_equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2121<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_less_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">less</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2122<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_less_equal_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">less_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2123<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_greater_hpp">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">greater</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2124<dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_greater_equal_hpp">Header 2125 <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">greater_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt> 2126</dl></div> 2127<div class="section"> 2128<div class="titlepage"><div><div><h4 class="title"> 2129<a name="ratio.reference.mpl.rational_constant"></a><a class="link" href="reference.html#ratio.reference.mpl.rational_constant" title="Rational Constant Concept">Rational Constant 2130 Concept</a> 2131</h4></div></div></div> 2132<h6> 2133<a name="ratio.reference.mpl.rational_constant.h0"></a> 2134 <span class="phrase"><a name="ratio.reference.mpl.rational_constant.description"></a></span><a class="link" href="reference.html#ratio.reference.mpl.rational_constant.description">Description</a> 2135 </h6> 2136<p> 2137 A <a class="link" href="reference.html#ratio.reference.mpl.rational_constant" title="Rational Constant Concept">Rational Constant</a> 2138 is a holder class for a compile-time value of a rational type. Every <a class="link" href="reference.html#ratio.reference.mpl.rational_constant" title="Rational Constant Concept">Rational Constant</a> 2139 is also a nullary Metafunction, returning itself. A rational constant object 2140 is implicitly convertible to the corresponding run-time value of the rational 2141 type. 2142 </p> 2143<h6> 2144<a name="ratio.reference.mpl.rational_constant.h1"></a> 2145 <span class="phrase"><a name="ratio.reference.mpl.rational_constant.expression_requirements"></a></span><a class="link" href="reference.html#ratio.reference.mpl.rational_constant.expression_requirements">Expression 2146 requirements</a> 2147 </h6> 2148<p> 2149 In the following table and subsequent specifications, r is a model of 2150 <a class="link" href="reference.html#ratio.reference.mpl.rational_constant" title="Rational Constant Concept">Rational Constant</a>. 2151 </p> 2152<div class="informaltable"><table class="table"> 2153<colgroup> 2154<col> 2155<col> 2156<col> 2157</colgroup> 2158<thead><tr> 2159<th> 2160 <p> 2161 Expression 2162 </p> 2163 </th> 2164<th> 2165 <p> 2166 Type 2167 </p> 2168 </th> 2169<th> 2170 <p> 2171 Complexity 2172 </p> 2173 </th> 2174</tr></thead> 2175<tbody> 2176<tr> 2177<td> 2178 <p> 2179 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">tag</span></code> 2180 </p> 2181 </td> 2182<td> 2183 <p> 2184 <code class="computeroutput"><span class="identifier">rational_c_tag</span></code> 2185 </p> 2186 </td> 2187<td> 2188 <p> 2189 Constant time 2190 </p> 2191 </td> 2192</tr> 2193<tr> 2194<td> 2195 <p> 2196 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">value_type</span></code> 2197 </p> 2198 </td> 2199<td> 2200 <p> 2201 A rational type 2202 </p> 2203 </td> 2204<td> 2205 <p> 2206 Constant time 2207 </p> 2208 </td> 2209</tr> 2210<tr> 2211<td> 2212 <p> 2213 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">num_type</span></code> 2214 </p> 2215 </td> 2216<td> 2217 <p> 2218 An integral type 2219 </p> 2220 </td> 2221<td> 2222 <p> 2223 Constant time 2224 </p> 2225 </td> 2226</tr> 2227<tr> 2228<td> 2229 <p> 2230 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">den_type</span></code> 2231 </p> 2232 </td> 2233<td> 2234 <p> 2235 An integral type 2236 </p> 2237 </td> 2238<td> 2239 <p> 2240 Constant time 2241 </p> 2242 </td> 2243</tr> 2244<tr> 2245<td> 2246 <p> 2247 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">num</span></code> 2248 </p> 2249 </td> 2250<td> 2251 <p> 2252 An Integral constant expression 2253 </p> 2254 </td> 2255<td> 2256 <p> 2257 Constant time 2258 </p> 2259 </td> 2260</tr> 2261<tr> 2262<td> 2263 <p> 2264 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">den</span></code> 2265 </p> 2266 </td> 2267<td> 2268 <p> 2269 An Integral constant expression 2270 </p> 2271 </td> 2272<td> 2273 <p> 2274 Constant time 2275 </p> 2276 </td> 2277</tr> 2278<tr> 2279<td> 2280 <p> 2281 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">type</span></code> 2282 </p> 2283 </td> 2284<td> 2285 <p> 2286 <a class="link" href="reference.html#ratio.reference.mpl.rational_constant" title="Rational Constant Concept">Rational 2287 Constant</a> 2288 </p> 2289 </td> 2290<td> 2291 <p> 2292 Constant time 2293 </p> 2294 </td> 2295</tr> 2296<tr> 2297<td> 2298 <p> 2299 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">value_type</span> <span class="keyword">const</span> 2300 <span class="identifier">c</span><span class="special">=</span><span class="identifier">r</span><span class="special">()</span></code> 2301 </p> 2302 </td> 2303<td> 2304 </td> 2305<td> 2306 <p> 2307 Constant time 2308 </p> 2309 </td> 2310</tr> 2311</tbody> 2312</table></div> 2313<h6> 2314<a name="ratio.reference.mpl.rational_constant.h2"></a> 2315 <span class="phrase"><a name="ratio.reference.mpl.rational_constant.expression_semantics"></a></span><a class="link" href="reference.html#ratio.reference.mpl.rational_constant.expression_semantics">Expression 2316 semantics</a> 2317 </h6> 2318<div class="informaltable"><table class="table"> 2319<colgroup> 2320<col> 2321<col> 2322</colgroup> 2323<thead><tr> 2324<th> 2325 <p> 2326 Expression 2327 </p> 2328 </th> 2329<th> 2330 <p> 2331 Semantics 2332 </p> 2333 </th> 2334</tr></thead> 2335<tbody> 2336<tr> 2337<td> 2338 <p> 2339 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">tag</span></code> 2340 </p> 2341 </td> 2342<td> 2343 <p> 2344 r's tag type; r::tag::value is r's conversion rank. 2345 </p> 2346 </td> 2347</tr> 2348<tr> 2349<td> 2350 <p> 2351 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">value_type</span></code> 2352 </p> 2353 </td> 2354<td> 2355 <p> 2356 A cv-unqualified type of <code class="computeroutput"><span class="identifier">r</span><span class="special">()</span></code> 2357 </p> 2358 </td> 2359</tr> 2360<tr> 2361<td> 2362 <p> 2363 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">num_type</span></code> 2364 </p> 2365 </td> 2366<td> 2367 <p> 2368 A cv-unqualified type of <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">num</span></code> 2369 </p> 2370 </td> 2371</tr> 2372<tr> 2373<td> 2374 <p> 2375 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">den_type</span></code> 2376 </p> 2377 </td> 2378<td> 2379 <p> 2380 A cv-unqualified type of <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">den</span></code> 2381 </p> 2382 </td> 2383</tr> 2384<tr> 2385<td> 2386 <p> 2387 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">num</span></code> 2388 </p> 2389 </td> 2390<td> 2391 <p> 2392 The numerator of the rational constant 2393 </p> 2394 </td> 2395</tr> 2396<tr> 2397<td> 2398 <p> 2399 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">den</span></code> 2400 </p> 2401 </td> 2402<td> 2403 <p> 2404 The denominator of the rational constant 2405 </p> 2406 </td> 2407</tr> 2408<tr> 2409<td> 2410 <p> 2411 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">type</span></code> 2412 </p> 2413 </td> 2414<td> 2415 <p> 2416 equal_to<n::type,n>::value == true. 2417 </p> 2418 </td> 2419</tr> 2420<tr> 2421<td> 2422 <p> 2423 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">value_type</span> <span class="keyword">const</span> 2424 <span class="identifier">c</span><span class="special">=</span><span class="identifier">r</span><span class="special">()</span></code> 2425 </p> 2426 </td> 2427<td> 2428 <p> 2429 <code class="computeroutput"><span class="identifier">r</span><span class="special">::</span><span class="identifier">value_type</span> <span class="keyword">const</span> 2430 <span class="identifier">c</span><span class="special">=</span><span class="identifier">r</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="identifier">r</span><span class="special">::</span><span class="identifier">num</span><span class="special">,</span><span class="identifier">r</span><span class="special">::</span><span class="identifier">den</span><span class="special">)</span></code> 2431 </p> 2432 </td> 2433</tr> 2434</tbody> 2435</table></div> 2436<h6> 2437<a name="ratio.reference.mpl.rational_constant.h3"></a> 2438 <span class="phrase"><a name="ratio.reference.mpl.rational_constant.models"></a></span><a class="link" href="reference.html#ratio.reference.mpl.rational_constant.models">Models</a> 2439 </h6> 2440<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 2441 <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio" title="Class Template ratio<>"><code class="computeroutput"><span class="identifier">ratio</span></code></a><> 2442 </li></ul></div> 2443</div> 2444<div class="section"> 2445<div class="titlepage"><div><div><h4 class="title"> 2446<a name="ratio.reference.mpl.rational_constant_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.rational_constant_hpp" title="Header <boost/ratio/mpl/rational_constant.hpp>">Header 2447 <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">rational_constant</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2448</h4></div></div></div> 2449<p> 2450 This header includes all the rational constant related header files 2451 </p> 2452<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">rational_c_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2453<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">numeric_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2454<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">arithmetic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2455<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">comparison</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2456</pre> 2457</div> 2458<div class="section"> 2459<div class="titlepage"><div><div><h4 class="title"> 2460<a name="ratio.reference.mpl.mpl_rational_c_tag_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_rational_c_tag_hpp" title="Header <boost/ratio/mpl/rational_c_tag.hpp>">Header 2461 <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">rational_c_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2462</h4></div></div></div> 2463<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2464<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2465 2466 <span class="keyword">struct</span> <span class="identifier">rational_c_tag</span> <span class="special">:</span> <span class="identifier">int_</span><span class="special"><</span><span class="number">10</span><span class="special">></span> <span class="special">{};</span> 2467 2468<span class="special">}</span> 2469<span class="special">}</span> 2470</pre> 2471</div> 2472<div class="section"> 2473<div class="titlepage"><div><div><h4 class="title"> 2474<a name="ratio.reference.mpl.mpl_numeric_cast_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_numeric_cast_hpp" title="Header <boost/ratio/mpl/numeric_cast.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">numeric_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2475</h4></div></div></div> 2476<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_numeric_cast_hpp.numeric_cast"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">numeric_cast</span><span class="special"><></span></code> 2477 Specialization</a></span></dt></dl></div> 2478<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2479<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2480 2481 <span class="keyword">template</span><span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">numeric_cast</span><span class="special"><</span> <span class="identifier">integral_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2482 2483<span class="special">}</span> 2484<span class="special">}</span> 2485</pre> 2486<div class="section"> 2487<div class="titlepage"><div><div><h5 class="title"> 2488<a name="ratio.reference.mpl.mpl_numeric_cast_hpp.numeric_cast"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_numeric_cast_hpp.numeric_cast" title="mpl::numeric_cast<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">numeric_cast</span><span class="special"><></span></code> 2489 Specialization</a> 2490</h5></div></div></div> 2491<p> 2492 A Integral Constant is seen as a ratio with numerator the Integral Constant 2493 value and denominator 1. 2494 </p> 2495<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> <span class="keyword">struct</span> <span class="identifier">numeric_cast</span><span class="special"><</span> <span class="identifier">integral_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2496<span class="special">{</span> 2497 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2498 <span class="special">:</span> <span class="identifier">ratio</span><span class="special"><</span> <span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="number">1</span> <span class="special">></span> 2499 <span class="special">{</span> 2500 <span class="special">};</span> 2501<span class="special">};</span> 2502</pre> 2503</div> 2504</div> 2505<div class="section"> 2506<div class="titlepage"><div><div><h4 class="title"> 2507<a name="ratio.reference.mpl.mpl_arithmetic_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_arithmetic_hpp" title="Header <boost/ratio/mpl/arithmetic.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">arithmetic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2508</h4></div></div></div> 2509<p> 2510 This header includes all the rational constant arithmetic MPL specializations. 2511 </p> 2512<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2513<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">minus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2514<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">times</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2515<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">divides</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2516<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">negate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2517<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">abs</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2518<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">sign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2519<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">gcd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2520<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">lcm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2521</pre> 2522</div> 2523<div class="section"> 2524<div class="titlepage"><div><div><h4 class="title"> 2525<a name="ratio.reference.mpl.mpl_plus_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_plus_hpp" title="Header <boost/ratio/mpl/plus.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2526</h4></div></div></div> 2527<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_plus_hpp.plus_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">plus_impl</span><span class="special"><></span></code> 2528 Specialization</a></span></dt></dl></div> 2529<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2530<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2531 <span class="keyword">template</span><span class="special"><></span> 2532 <span class="keyword">struct</span> <span class="identifier">plus_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2533<span class="special">}</span> 2534<span class="special">}</span> 2535</pre> 2536<div class="section"> 2537<div class="titlepage"><div><div><h5 class="title"> 2538<a name="ratio.reference.mpl.mpl_plus_hpp.plus_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_plus_hpp.plus_impl" title="mpl::plus_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">plus_impl</span><span class="special"><></span></code> 2539 Specialization</a> 2540</h5></div></div></div> 2541<p> 2542 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_add</span></code></a> template class. 2543 </p> 2544<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2545<span class="keyword">struct</span> <span class="identifier">plus_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2546<span class="special">{</span> 2547 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2548 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_add</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2549 <span class="special">{</span> 2550 <span class="special">};</span> 2551<span class="special">};</span> 2552</pre> 2553</div> 2554</div> 2555<div class="section"> 2556<div class="titlepage"><div><div><h4 class="title"> 2557<a name="ratio.reference.mpl.mpl_minus_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_minus_hpp" title="Header <boost/ratio/mpl/minus.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">minus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2558</h4></div></div></div> 2559<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_minus_hpp.minus_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">minus_impl</span><span class="special"><></span></code> 2560 Specialization</a></span></dt></dl></div> 2561<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2562<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2563 <span class="keyword">template</span><span class="special"><></span> 2564 <span class="keyword">struct</span> <span class="identifier">minus_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2565<span class="special">}</span> 2566<span class="special">}</span> 2567</pre> 2568<div class="section"> 2569<div class="titlepage"><div><div><h5 class="title"> 2570<a name="ratio.reference.mpl.mpl_minus_hpp.minus_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_minus_hpp.minus_impl" title="mpl::minus_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">minus_impl</span><span class="special"><></span></code> 2571 Specialization</a> 2572</h5></div></div></div> 2573<p> 2574 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_subtract</span></code></a> template class. 2575 </p> 2576<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2577<span class="keyword">struct</span> <span class="identifier">plus_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2578<span class="special">{</span> 2579 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2580 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_subtract</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2581 <span class="special">{</span> 2582 <span class="special">};</span> 2583<span class="special">};</span> 2584</pre> 2585</div> 2586</div> 2587<div class="section"> 2588<div class="titlepage"><div><div><h4 class="title"> 2589<a name="ratio.reference.mpl.mpl_times_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_times_hpp" title="Header <boost/ratio/mpl/times.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">times</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2590</h4></div></div></div> 2591<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_times_hpp.times_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">times_impl</span><span class="special"><></span></code> 2592 Specialization</a></span></dt></dl></div> 2593<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2594<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2595 <span class="keyword">template</span><span class="special"><></span> 2596 <span class="keyword">struct</span> <span class="identifier">times_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2597<span class="special">}</span> 2598<span class="special">}</span> 2599</pre> 2600<div class="section"> 2601<div class="titlepage"><div><div><h5 class="title"> 2602<a name="ratio.reference.mpl.mpl_times_hpp.times_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_times_hpp.times_impl" title="mpl::times_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">times_impl</span><span class="special"><></span></code> 2603 Specialization</a> 2604</h5></div></div></div> 2605<p> 2606 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_multiply</span></code></a> template class. 2607 </p> 2608<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2609<span class="keyword">struct</span> <span class="identifier">times_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2610<span class="special">{</span> 2611 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2612 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_multiply</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2613 <span class="special">{</span> 2614 <span class="special">};</span> 2615<span class="special">};</span> 2616</pre> 2617</div> 2618</div> 2619<div class="section"> 2620<div class="titlepage"><div><div><h4 class="title"> 2621<a name="ratio.reference.mpl.mpl_divides_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_divides_hpp" title="Header <boost/ratio/mpl/divides.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">divides</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2622</h4></div></div></div> 2623<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_divides_hpp.divides_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">divides_impl</span><span class="special"><></span></code> 2624 Specialization</a></span></dt></dl></div> 2625<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2626<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2627 <span class="keyword">template</span><span class="special"><></span> 2628 <span class="keyword">struct</span> <span class="identifier">divides_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2629<span class="special">}</span> 2630<span class="special">}</span> 2631</pre> 2632<div class="section"> 2633<div class="titlepage"><div><div><h5 class="title"> 2634<a name="ratio.reference.mpl.mpl_divides_hpp.divides_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_divides_hpp.divides_impl" title="mpl::divides_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">divides_impl</span><span class="special"><></span></code> 2635 Specialization</a> 2636</h5></div></div></div> 2637<p> 2638 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_divide</span></code></a> template class. 2639 </p> 2640<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2641<span class="keyword">struct</span> <span class="identifier">divides_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2642<span class="special">{</span> 2643 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2644 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_divide</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2645 <span class="special">{</span> 2646 <span class="special">};</span> 2647<span class="special">};</span> 2648</pre> 2649</div> 2650</div> 2651<div class="section"> 2652<div class="titlepage"><div><div><h4 class="title"> 2653<a name="ratio.reference.mpl.mpl_gcd_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_gcd_hpp" title="Header <boost/ratio/mpl/gcd.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">gcd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2654</h4></div></div></div> 2655<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_gcd_hpp.gcd_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">gcd_impl</span><span class="special"><></span></code> 2656 Specialization</a></span></dt></dl></div> 2657<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2658<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2659 <span class="keyword">template</span><span class="special"><></span> 2660 <span class="keyword">struct</span> <span class="identifier">gcd_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2661<span class="special">}</span> 2662<span class="special">}</span> 2663</pre> 2664<div class="section"> 2665<div class="titlepage"><div><div><h5 class="title"> 2666<a name="ratio.reference.mpl.mpl_gcd_hpp.gcd_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_gcd_hpp.gcd_impl" title="mpl::gcd_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">gcd_impl</span><span class="special"><></span></code> 2667 Specialization</a> 2668</h5></div></div></div> 2669<p> 2670 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_gcd</span></code></a> template class. 2671 </p> 2672<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2673<span class="keyword">struct</span> <span class="identifier">gcd_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2674<span class="special">{</span> 2675 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2676 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_gcd</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2677 <span class="special">{</span> 2678 <span class="special">};</span> 2679<span class="special">};</span> 2680</pre> 2681</div> 2682</div> 2683<div class="section"> 2684<div class="titlepage"><div><div><h4 class="title"> 2685<a name="ratio.reference.mpl.mpl_lcm_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_lcm_hpp" title="Header <boost/ratio/mpl/lcm.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">lcm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2686</h4></div></div></div> 2687<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_lcm_hpp.lcm_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">lcm_impl</span><span class="special"><></span></code> 2688 Specialization</a></span></dt></dl></div> 2689<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2690<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2691 <span class="keyword">template</span><span class="special"><></span> 2692 <span class="keyword">struct</span> <span class="identifier">lcm_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2693<span class="special">}</span> 2694<span class="special">}</span> 2695</pre> 2696<div class="section"> 2697<div class="titlepage"><div><div><h5 class="title"> 2698<a name="ratio.reference.mpl.mpl_lcm_hpp.lcm_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_lcm_hpp.lcm_impl" title="mpl::lcm_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">lcm_impl</span><span class="special"><></span></code> 2699 Specialization</a> 2700</h5></div></div></div> 2701<p> 2702 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_lcm</span></code></a> template class. 2703 </p> 2704<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2705<span class="keyword">struct</span> <span class="identifier">lcm_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2706<span class="special">{</span> 2707 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2708 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_lcm</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2709 <span class="special">{</span> 2710 <span class="special">};</span> 2711<span class="special">};</span> 2712</pre> 2713</div> 2714</div> 2715<div class="section"> 2716<div class="titlepage"><div><div><h4 class="title"> 2717<a name="ratio.reference.mpl.mpl_negate_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_negate_hpp" title="Header <boost/ratio/mpl/negate.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">negate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2718</h4></div></div></div> 2719<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_negate_hpp.negate_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">negate_impl</span><span class="special"><></span></code> 2720 Specialization</a></span></dt></dl></div> 2721<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2722<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2723 <span class="keyword">template</span><span class="special"><></span> 2724 <span class="keyword">struct</span> <span class="identifier">negate_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2725<span class="special">}</span> 2726<span class="special">}</span> 2727</pre> 2728<div class="section"> 2729<div class="titlepage"><div><div><h5 class="title"> 2730<a name="ratio.reference.mpl.mpl_negate_hpp.negate_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_negate_hpp.negate_impl" title="mpl::negate_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">negate_impl</span><span class="special"><></span></code> 2731 Specialization</a> 2732</h5></div></div></div> 2733<p> 2734 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_negate</span></code></a> template class. 2735 </p> 2736<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2737<span class="keyword">struct</span> <span class="identifier">negate_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span> <span class="special">></span> 2738<span class="special">{</span> 2739 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2740 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_negate</span></code></a><span class="special"><</span><span class="identifier">R</span><span class="special">></span> 2741 <span class="special">{</span> 2742 <span class="special">};</span> 2743<span class="special">};</span> 2744</pre> 2745</div> 2746</div> 2747<div class="section"> 2748<div class="titlepage"><div><div><h4 class="title"> 2749<a name="ratio.reference.mpl.mpl_abs_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_abs_hpp" title="Header <boost/ratio/mpl/abs.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">abs</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2750</h4></div></div></div> 2751<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_abs_hpp.abs_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">abs_impl</span><span class="special"><></span></code> 2752 Specialization</a></span></dt></dl></div> 2753<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2754<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2755 <span class="keyword">template</span><span class="special"><></span> 2756 <span class="keyword">struct</span> <span class="identifier">abs_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2757<span class="special">}</span> 2758<span class="special">}</span> 2759</pre> 2760<div class="section"> 2761<div class="titlepage"><div><div><h5 class="title"> 2762<a name="ratio.reference.mpl.mpl_abs_hpp.abs_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_abs_hpp.abs_impl" title="mpl::abs_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">abs_impl</span><span class="special"><></span></code> 2763 Specialization</a> 2764</h5></div></div></div> 2765<p> 2766 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_abs</span></code></a> template class. 2767 </p> 2768<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2769<span class="keyword">struct</span> <span class="identifier">abs_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span> <span class="special">></span> 2770<span class="special">{</span> 2771 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2772 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_abs</span></code></a><span class="special"><</span><span class="identifier">R</span><span class="special">></span> 2773 <span class="special">{</span> 2774 <span class="special">};</span> 2775<span class="special">};</span> 2776</pre> 2777</div> 2778</div> 2779<div class="section"> 2780<div class="titlepage"><div><div><h4 class="title"> 2781<a name="ratio.reference.mpl.mpl_sign_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_sign_hpp" title="Header <boost/ratio/mpl/sign.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">sign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2782</h4></div></div></div> 2783<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_sign_hpp.sign_impl"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_impl</span><span class="special"><></span></code> 2784 Specialization</a></span></dt></dl></div> 2785<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2786<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2787 <span class="keyword">template</span><span class="special"><></span> 2788 <span class="keyword">struct</span> <span class="identifier">sign_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2789<span class="special">}</span> 2790<span class="special">}</span> 2791</pre> 2792<div class="section"> 2793<div class="titlepage"><div><div><h5 class="title"> 2794<a name="ratio.reference.mpl.mpl_sign_hpp.sign_impl"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_sign_hpp.sign_impl" title="mpl::sign_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_impl</span><span class="special"><></span></code> 2795 Specialization</a> 2796</h5></div></div></div> 2797<p> 2798 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_sign</span></code></a> template class. 2799 </p> 2800<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2801<span class="keyword">struct</span> <span class="identifier">sign_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span> <span class="special">></span> 2802<span class="special">{</span> 2803 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2804 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_arithmetic" title="ratio Arithmetic"><code class="computeroutput"><span class="identifier">ratio_sign</span></code></a><span class="special"><</span><span class="identifier">R</span><span class="special">></span> 2805 <span class="special">{</span> 2806 <span class="special">};</span> 2807<span class="special">};</span> 2808</pre> 2809</div> 2810</div> 2811<div class="section"> 2812<div class="titlepage"><div><div><h4 class="title"> 2813<a name="ratio.reference.mpl.mpl_comparison_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_comparison_hpp" title="Header <boost/ratio/mpl/comparison.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">comparison</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2814</h4></div></div></div> 2815<p> 2816 This header includes all the rational constant comparison MPL specializations. 2817 </p> 2818<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2819<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">not_equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2820<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">less</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2821<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">less_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2822<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">greater</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2823<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">greater_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 2824</pre> 2825</div> 2826<div class="section"> 2827<div class="titlepage"><div><div><h4 class="title"> 2828<a name="ratio.reference.mpl.mpl_equal_to_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_equal_to_hpp" title="Header <boost/ratio/mpl/equal_to.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2829</h4></div></div></div> 2830<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_equal_to_hpp.equal_to"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">equal_to_impl</span><span class="special"><></span></code> 2831 Specialization</a></span></dt></dl></div> 2832<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2833<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2834 <span class="keyword">template</span><span class="special"><></span> 2835 <span class="keyword">struct</span> <span class="identifier">equal_to_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2836<span class="special">}</span> 2837<span class="special">}</span> 2838</pre> 2839<div class="section"> 2840<div class="titlepage"><div><div><h5 class="title"> 2841<a name="ratio.reference.mpl.mpl_equal_to_hpp.equal_to"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_equal_to_hpp.equal_to" title="mpl::equal_to_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">equal_to_impl</span><span class="special"><></span></code> 2842 Specialization</a> 2843</h5></div></div></div> 2844<p> 2845 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_equal</span></code></a> template class. 2846 </p> 2847<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2848<span class="keyword">struct</span> <span class="identifier">equal_to_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2849<span class="special">{</span> 2850 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2851 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_equal</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2852 <span class="special">{</span> 2853 <span class="special">};</span> 2854<span class="special">};</span> 2855</pre> 2856</div> 2857</div> 2858<div class="section"> 2859<div class="titlepage"><div><div><h4 class="title"> 2860<a name="ratio.reference.mpl.mpl_not_equal_to_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_not_equal_to_hpp" title="Header <boost/ratio/mpl/not_equal_to.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">not_equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2861</h4></div></div></div> 2862<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_not_equal_to_hpp.not_equal_to"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">not_equal_to_impl</span><span class="special"><></span></code> 2863 Specialization</a></span></dt></dl></div> 2864<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2865<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2866 <span class="keyword">template</span><span class="special"><></span> 2867 <span class="keyword">struct</span> <span class="identifier">not_equal_to_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2868<span class="special">}</span> 2869<span class="special">}</span> 2870</pre> 2871<div class="section"> 2872<div class="titlepage"><div><div><h5 class="title"> 2873<a name="ratio.reference.mpl.mpl_not_equal_to_hpp.not_equal_to"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_not_equal_to_hpp.not_equal_to" title="mpl::not_equal_to_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">not_equal_to_impl</span><span class="special"><></span></code> 2874 Specialization</a> 2875</h5></div></div></div> 2876<p> 2877 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_not_equal</span></code></a> template class. 2878 </p> 2879<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2880<span class="keyword">struct</span> <span class="identifier">not_equal_to_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2881<span class="special">{</span> 2882 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2883 <span class="special">:</span> <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_not_equal</span></code></a><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2884 <span class="special">{</span> 2885 <span class="special">};</span> 2886<span class="special">};</span> 2887</pre> 2888</div> 2889</div> 2890<div class="section"> 2891<div class="titlepage"><div><div><h4 class="title"> 2892<a name="ratio.reference.mpl.mpl_less_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_less_hpp" title="Header <boost/ratio/mpl/less.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">less</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2893</h4></div></div></div> 2894<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_less_hpp.less"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">less_impl</span><span class="special"><></span></code> 2895 Specialization</a></span></dt></dl></div> 2896<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2897<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2898 <span class="keyword">template</span><span class="special"><></span> 2899 <span class="keyword">struct</span> <span class="identifier">less_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2900<span class="special">}</span> 2901<span class="special">}</span> 2902</pre> 2903<div class="section"> 2904<div class="titlepage"><div><div><h5 class="title"> 2905<a name="ratio.reference.mpl.mpl_less_hpp.less"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_less_hpp.less" title="mpl::less_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">less_impl</span><span class="special"><></span></code> 2906 Specialization</a> 2907</h5></div></div></div> 2908<p> 2909 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_less</span></code></a> template class. 2910 </p> 2911<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2912<span class="keyword">struct</span> <span class="identifier">less_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2913<span class="special">{</span> 2914 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2915 <span class="special">:</span> <span class="identifier">ratio_less</span><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2916 <span class="special">{</span> 2917 <span class="special">};</span> 2918<span class="special">};</span> 2919</pre> 2920</div> 2921</div> 2922<div class="section"> 2923<div class="titlepage"><div><div><h4 class="title"> 2924<a name="ratio.reference.mpl.mpl_less_equal_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_less_equal_hpp" title="Header <boost/ratio/mpl/less_equal.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">less_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2925</h4></div></div></div> 2926<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_less_equal_hpp.less_equal"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">less_equal_impl</span><span class="special"><></span></code> 2927 Specialization</a></span></dt></dl></div> 2928<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2929<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2930 <span class="keyword">template</span><span class="special"><></span> 2931 <span class="keyword">struct</span> <span class="identifier">less_equal_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2932<span class="special">}</span> 2933<span class="special">}</span> 2934</pre> 2935<div class="section"> 2936<div class="titlepage"><div><div><h5 class="title"> 2937<a name="ratio.reference.mpl.mpl_less_equal_hpp.less_equal"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_less_equal_hpp.less_equal" title="mpl::less_equal_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">less_equal_impl</span><span class="special"><></span></code> 2938 Specialization</a> 2939</h5></div></div></div> 2940<p> 2941 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_less_equal</span></code></a> template class. 2942 </p> 2943<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2944<span class="keyword">struct</span> <span class="identifier">less_equal_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2945<span class="special">{</span> 2946 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2947 <span class="special">:</span> <span class="identifier">ratio_less_equal</span><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2948 <span class="special">{</span> 2949 <span class="special">};</span> 2950<span class="special">};</span> 2951</pre> 2952</div> 2953</div> 2954<div class="section"> 2955<div class="titlepage"><div><div><h4 class="title"> 2956<a name="ratio.reference.mpl.mpl_greater_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_greater_hpp" title="Header <boost/ratio/mpl/greater.hpp>">Header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">greater</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2957</h4></div></div></div> 2958<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_greater_hpp.greater"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">greater_impl</span><span class="special"><></span></code> 2959 Specialization</a></span></dt></dl></div> 2960<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2961<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2962 <span class="keyword">template</span><span class="special"><></span> 2963 <span class="keyword">struct</span> <span class="identifier">greater_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2964<span class="special">}</span> 2965<span class="special">}</span> 2966</pre> 2967<div class="section"> 2968<div class="titlepage"><div><div><h5 class="title"> 2969<a name="ratio.reference.mpl.mpl_greater_hpp.greater"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_greater_hpp.greater" title="mpl::greater_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">greater_impl</span><span class="special"><></span></code> 2970 Specialization</a> 2971</h5></div></div></div> 2972<p> 2973 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_greater</span></code></a> template class. 2974 </p> 2975<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 2976<span class="keyword">struct</span> <span class="identifier">greater_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 2977<span class="special">{</span> 2978 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 2979 <span class="special">:</span> <span class="identifier">ratio_greater</span><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 2980 <span class="special">{</span> 2981 <span class="special">};</span> 2982<span class="special">};</span> 2983</pre> 2984</div> 2985</div> 2986<div class="section"> 2987<div class="titlepage"><div><div><h4 class="title"> 2988<a name="ratio.reference.mpl.mpl_greater_equal_hpp"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_greater_equal_hpp" title="Header <boost/ratio/mpl/greater_equal.hpp>">Header 2989 <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ratio</span><span class="special">/</span><span class="identifier">mpl</span><span class="special">/</span><span class="identifier">greater_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 2990</h4></div></div></div> 2991<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#ratio.reference.mpl.mpl_greater_equal_hpp.greater_equal"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">greater_equal_impl</span><span class="special"><></span></code> 2992 Specialization</a></span></dt></dl></div> 2993<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 2994<span class="keyword">namespace</span> <span class="identifier">mpl</span> <span class="special">{</span> 2995 <span class="keyword">template</span><span class="special"><></span> 2996 <span class="keyword">struct</span> <span class="identifier">greater_equal_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">>;</span> 2997<span class="special">}</span> 2998<span class="special">}</span> 2999</pre> 3000<div class="section"> 3001<div class="titlepage"><div><div><h5 class="title"> 3002<a name="ratio.reference.mpl.mpl_greater_equal_hpp.greater_equal"></a><a class="link" href="reference.html#ratio.reference.mpl.mpl_greater_equal_hpp.greater_equal" title="mpl::greater_equal_impl<> Specialization"><code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">greater_equal_impl</span><span class="special"><></span></code> 3003 Specialization</a> 3004</h5></div></div></div> 3005<p> 3006 The specialization relays on the <a class="link" href="reference.html#ratio.reference.std.ratio_hpp.ratio_comparison" title="ratio Comparison"><code class="computeroutput"><span class="identifier">ratio_greater_equal</span></code></a> template 3007 class. 3008 </p> 3009<pre class="programlisting"><span class="keyword">template</span><span class="special"><></span> 3010<span class="keyword">struct</span> <span class="identifier">greater_equal_impl</span><span class="special"><</span> <span class="identifier">rational_c_tag</span><span class="special">,</span><span class="identifier">rational_c_tag</span> <span class="special">></span> 3011<span class="special">{</span> 3012 <span class="keyword">template</span><span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">R1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">R2</span> <span class="special">></span> <span class="keyword">struct</span> <span class="identifier">apply</span> 3013 <span class="special">:</span> <span class="identifier">ratio_greater_equal</span><span class="special"><</span><span class="identifier">R1</span><span class="special">,</span> <span class="identifier">R2</span><span class="special">></span> 3014 <span class="special">{</span> 3015 <span class="special">};</span> 3016<span class="special">};</span> 3017</pre> 3018</div> 3019</div> 3020</div> 3021</div> 3022<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 3023<td align="left"></td> 3024<td align="right"><div class="copyright-footer">Copyright © 2008 Howard Hinnant<br>Copyright © 2006, 2008 Beman Dawes<br>Copyright © 2009-2012 Vicente 3025 J. Botet Escriba<p> 3026 Distributed under the Boost Software License, Version 1.0. (See accompanying 3027 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>) 3028 </p> 3029</div></td> 3030</tr></table> 3031<hr> 3032<div class="spirit-nav"> 3033<a accesskey="p" href="users_guide.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ratio.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="appendices.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> 3034</div> 3035</body> 3036</html> 3037