Compare commits

...

7 Commits

Author SHA1 Message Date
8f642ad727 v2, v3, integration branch
[SVN r62649]
2010-06-09 11:34:33 +00:00
84c8a52085 Rebuild the integer documentation.
[SVN r61058]
2010-04-05 07:27:25 +00:00
8a1d11f369 Fix link to integer header.
[SVN r59676]
2010-02-14 13:09:24 +00:00
a5356bb254 Change integer code to still work when BOOST_HAS_MS_INT64 is defined but BOOST_HAS_LONG_LONG is not.
Update VC++ config to define BOOST_HAS_LONG_LONG for MSVC-8 in ANSI mode.
Fixes #3657.

[SVN r59468]
2010-02-04 11:15:54 +00:00
2f13159023 Change code to check individually for the INT#_C macros before defining them - this correctly handles cases where they are partially defined by other other headers (for example ICU).
Also declare this a gcc system header - seems to be the only way to really suppress the warnings - fixes #3889.

[SVN r59430]
2010-02-02 18:35:33 +00:00
6293af825a Commit alternative warning suppression code.
[SVN r59264]
2010-01-25 10:55:50 +00:00
896f2a7654 Disable warnings when defining INT#_C macros for gcc.
[SVN r58948]
2010-01-12 18:51:40 +00:00
12 changed files with 509 additions and 465 deletions

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Standard Integer Types</title> <title>Standard Integer Types</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="../index.html" title="Boost.Integer"> <link rel="prev" href="../index.html" title="Boost.Integer">
@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="traits.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="traits.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Standard Integer Types">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.cstdint"></a><a class="link" href="cstdint.html" title="Standard Integer Types"> Standard Integer Types</a> <a name="boost_integer.cstdint"></a><a class="link" href="cstdint.html" title="Standard Integer Types"> Standard Integer Types</a>
</h2></div></div></div> </h2></div></div></div>
@ -41,7 +41,7 @@
<dt><span class="section"><a href="cstdint.html#boost_integer.cstdint.integer_constant_macros">Integer <dt><span class="section"><a href="cstdint.html#boost_integer.cstdint.integer_constant_macros">Integer
Constant Macros</a></span></dt> Constant Macros</a></span></dt>
</dl></div> </dl></div>
<div class="section" lang="en"> <div class="section" title="Overview">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.overview"></a><a class="link" href="cstdint.html#boost_integer.cstdint.overview" title="Overview">Overview</a> <a name="boost_integer.cstdint.overview"></a><a class="link" href="cstdint.html#boost_integer.cstdint.overview" title="Overview">Overview</a>
</h3></div></div></div> </h3></div></div></div>
@ -62,7 +62,7 @@
a test program. a test program.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Rationale">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.rationale"></a><a class="link" href="cstdint.html#boost_integer.cstdint.rationale" title="Rationale"> Rationale</a> <a name="boost_integer.cstdint.rationale"></a><a class="link" href="cstdint.html#boost_integer.cstdint.rationale" title="Rationale"> Rationale</a>
</h3></div></div></div> </h3></div></div></div>
@ -82,7 +82,7 @@
conventions rather than C++ Standard Library header naming conventions. conventions rather than C++ Standard Library header naming conventions.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Caveat emptor">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.ce"></a><a class="link" href="cstdint.html#boost_integer.cstdint.ce" title="Caveat emptor"> <span class="emphasis"><em>Caveat emptor</em></span></a> <a name="boost_integer.cstdint.ce"></a><a class="link" href="cstdint.html#boost_integer.cstdint.ce" title="Caveat emptor"> <span class="emphasis"><em>Caveat emptor</em></span></a>
</h3></div></div></div> </h3></div></div></div>
@ -99,7 +99,7 @@
Use the respective names in namespace <code class="literal">boost</code> instead. Use the respective names in namespace <code class="literal">boost</code> instead.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Exact-width integer types">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.exact_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.exact_width_integer_types" title="Exact-width integer types">Exact-width <a name="boost_integer.cstdint.exact_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.exact_width_integer_types" title="Exact-width integer types">Exact-width
integer types</a> integer types</a>
@ -119,7 +119,7 @@
The absence of int64_t and uint64_t is indicated by the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>. The absence of int64_t and uint64_t is indicated by the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Minimum-width integer types">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.minimum_width_integer_types" title="Minimum-width integer types">Minimum-width <a name="boost_integer.cstdint.minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.minimum_width_integer_types" title="Minimum-width integer types">Minimum-width
integer types</a> integer types</a>
@ -137,27 +137,27 @@
<p> <p>
The following minimum-width integer types are provided for all platforms: The following minimum-width integer types are provided for all platforms:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li><code class="literal">int_least8_t</code></li> <li class="listitem"><code class="literal">int_least8_t</code></li>
<li><code class="literal">int_least16_t</code></li> <li class="listitem"><code class="literal">int_least16_t</code></li>
<li><code class="literal">int_least32_t</code></li> <li class="listitem"><code class="literal">int_least32_t</code></li>
<li><code class="literal">uint_least8_t</code></li> <li class="listitem"><code class="literal">uint_least8_t</code></li>
<li><code class="literal">uint_least16_t</code></li> <li class="listitem"><code class="literal">uint_least16_t</code></li>
<li><code class="literal">uint_least32_t</code></li> <li class="listitem"><code class="literal">uint_least32_t</code></li>
</ul></div> </ul></div>
<p> <p>
The following types are available only if, after including &lt;boost/cstdint.hpp&gt;, The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
the macro BOOST_NO_INT64_T is not defined: the macro BOOST_NO_INT64_T is not defined:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li><code class="literal">int_least64_t</code></li> <li class="listitem"><code class="literal">int_least64_t</code></li>
<li><code class="literal">uint_least64_t</code></li> <li class="listitem"><code class="literal">uint_least64_t</code></li>
</ul></div> </ul></div>
<p> <p>
All other minimum-width integer types are optional. All other minimum-width integer types are optional.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Fastest minimum-width integer types">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.fastest_minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.fastest_minimum_width_integer_types" title="Fastest minimum-width integer types">Fastest <a name="boost_integer.cstdint.fastest_minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.fastest_minimum_width_integer_types" title="Fastest minimum-width integer types">Fastest
minimum-width integer types</a> minimum-width integer types</a>
@ -175,27 +175,27 @@
<p> <p>
The following fastest minimum-width integer types are provided for all platforms: The following fastest minimum-width integer types are provided for all platforms:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li><code class="literal">int_fast8_t</code></li> <li class="listitem"><code class="literal">int_fast8_t</code></li>
<li><code class="literal">int_fast16_t</code></li> <li class="listitem"><code class="literal">int_fast16_t</code></li>
<li><code class="literal">int_fast32_t</code></li> <li class="listitem"><code class="literal">int_fast32_t</code></li>
<li><code class="literal">uint_fast8_t</code></li> <li class="listitem"><code class="literal">uint_fast8_t</code></li>
<li><code class="literal">uint_fast16_t</code></li> <li class="listitem"><code class="literal">uint_fast16_t</code></li>
<li><code class="literal">uint_fast32_t</code></li> <li class="listitem"><code class="literal">uint_fast32_t</code></li>
</ul></div> </ul></div>
<p> <p>
The following types are available only if, after including &lt;boost/cstdint.hpp&gt;, The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
the macro BOOST_NO_INT64_T is not defined: the macro BOOST_NO_INT64_T is not defined:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li><code class="literal">int_fast64_t</code></li> <li class="listitem"><code class="literal">int_fast64_t</code></li>
<li><code class="literal">uint_fast64_t</code></li> <li class="listitem"><code class="literal">uint_fast64_t</code></li>
</ul></div> </ul></div>
<p> <p>
All other fastest minimum-width integer types are optional. All other fastest minimum-width integer types are optional.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Greatest-width integer types">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.greatest_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.greatest_width_integer_types" title="Greatest-width integer types">Greatest-width <a name="boost_integer.cstdint.greatest_width_integer_types"></a><a class="link" href="cstdint.html#boost_integer.cstdint.greatest_width_integer_types" title="Greatest-width integer types">Greatest-width
integer types</a> integer types</a>
@ -212,7 +212,7 @@
These types are provided for all platforms. These types are provided for all platforms.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Integer Constant Macros">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.cstdint.integer_constant_macros"></a><a class="link" href="cstdint.html#boost_integer.cstdint.integer_constant_macros" title="Integer Constant Macros">Integer <a name="boost_integer.cstdint.integer_constant_macros"></a><a class="link" href="cstdint.html#boost_integer.cstdint.integer_constant_macros" title="Integer Constant Macros">Integer
Constant Macros</a> Constant Macros</a>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>History</title> <title>History</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="minmax.html" title="Compile time min/max calculation"> <link rel="prev" href="minmax.html" title="Compile time min/max calculation">
@ -21,19 +21,19 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="minmax.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a> <a accesskey="p" href="minmax.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="History">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.history"></a><a class="link" href="history.html" title="History"> History</a> <a name="boost_integer.history"></a><a class="link" href="history.html" title="History"> History</a>
</h2></div></div></div> </h2></div></div></div>
<a name="boost_integer.history.1_42_0"></a><h5> <a name="boost_integer.history.1_42_0"></a><h5>
<a name="id786079"></a> <a name="id560880"></a>
<a class="link" href="history.html#boost_integer.history.1_42_0">1.42.0</a> <a class="link" href="history.html#boost_integer.history.1_42_0">1.42.0</a>
</h5> </h5>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
Reverted Trunk to release branch state (i.e. a "known good state"). Reverted Trunk to release branch state (i.e. a "known good state").
</li> </li>
<li> <li class="listitem">
Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/653" target="_top">653</a>, Fixed issues: <a href="https://svn.boost.org/trac/boost/ticket/653" target="_top">653</a>,
<a href="https://svn.boost.org/trac/boost/ticket/3084" target="_top">3084</a>, <a href="https://svn.boost.org/trac/boost/ticket/3084" target="_top">3084</a>,
<a href="https://svn.boost.org/trac/boost/ticket/3177" target="_top">3177</a>, <a href="https://svn.boost.org/trac/boost/ticket/3177" target="_top">3177</a>,
@ -42,12 +42,12 @@
<a href="https://svn.boost.org/trac/boost/ticket/3657" target="_top">3657</a>, <a href="https://svn.boost.org/trac/boost/ticket/3657" target="_top">3657</a>,
<a href="https://svn.boost.org/trac/boost/ticket/2134" target="_top">2134</a>. <a href="https://svn.boost.org/trac/boost/ticket/2134" target="_top">2134</a>.
</li> </li>
<li> <li class="listitem">
Added long long support to <code class="literal">boost::static_log2</code>, <code class="literal">boost::static_signed_min</code>, Added long long support to <code class="literal">boost::static_log2</code>, <code class="literal">boost::static_signed_min</code>,
<code class="literal">boost::static_signed_max</code>, <code class="literal">boost::static_unsigned_min</code><code class="literal">boost::static_unsigned_max</code>, <code class="literal">boost::static_signed_max</code>, <code class="literal">boost::static_unsigned_min</code><code class="literal">boost::static_unsigned_max</code>,
when available. when available.
</li> </li>
<li> <li class="listitem">
The argument type and the result type of <code class="literal">boost::static_signed_min</code> The argument type and the result type of <code class="literal">boost::static_signed_min</code>
etc are now typedef'd. Formerly, they were hardcoded as <code class="literal">unsigned etc are now typedef'd. Formerly, they were hardcoded as <code class="literal">unsigned
long</code> and <code class="literal">int</code> respectively. Please, use the provided long</code> and <code class="literal">int</code> respectively. Please, use the provided
@ -55,10 +55,10 @@
</li> </li>
</ul></div> </ul></div>
<a name="boost_integer.history.1_32_0"></a><h5> <a name="boost_integer.history.1_32_0"></a><h5>
<a name="id786181"></a> <a name="id560998"></a>
<a class="link" href="history.html#boost_integer.history.1_32_0">1.32.0</a> <a class="link" href="history.html#boost_integer.history.1_32_0">1.32.0</a>
</h5> </h5>
<div class="itemizedlist"><ul type="disc"><li> <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
The argument type and the result type of <code class="literal">boost::static_log2</code> The argument type and the result type of <code class="literal">boost::static_log2</code>
are now typedef'd. Formerly, they were hardcoded as <code class="literal">unsigned long</code> are now typedef'd. Formerly, they were hardcoded as <code class="literal">unsigned long</code>
and <code class="literal">int</code> respectively. Please, use the provided typedefs and <code class="literal">int</code> respectively. Please, use the provided typedefs

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Integer Type Selection</title> <title>Integer Type Selection</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="traits.html" title="Integer Traits"> <link rel="prev" href="traits.html" title="Integer Traits">
@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="traits.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="traits.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Integer Type Selection">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.integer"></a><a class="link" href="integer.html" title="Integer Type Selection"> Integer Type Selection</a> <a name="boost_integer.integer"></a><a class="link" href="integer.html" title="Integer Type Selection"> Integer Type Selection</a>
</h2></div></div></div> </h2></div></div></div>
@ -44,7 +44,7 @@
characteristics such as number of bits or maximum value. This facility is particularly characteristics such as number of bits or maximum value. This facility is particularly
useful for solving generic programming problems. useful for solving generic programming problems.
</p> </p>
<div class="section" lang="en"> <div class="section" title="Synopsis">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.synopsis"></a><a class="link" href="integer.html#boost_integer.integer.synopsis" title="Synopsis"> Synopsis</a> <a name="boost_integer.integer.synopsis"></a><a class="link" href="integer.html#boost_integer.integer.synopsis" title="Synopsis"> Synopsis</a>
</h3></div></div></div> </h3></div></div></div>
@ -102,7 +102,7 @@
<span class="special">}</span> <span class="comment">// namespace boost <span class="special">}</span> <span class="comment">// namespace boost
</span></pre> </span></pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Easiest-to-Manipulate Types">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.easiest"></a><a class="link" href="integer.html#boost_integer.integer.easiest" title="Easiest-to-Manipulate Types"> Easiest-to-Manipulate <a name="boost_integer.integer.easiest"></a><a class="link" href="integer.html#boost_integer.integer.easiest" title="Easiest-to-Manipulate Types"> Easiest-to-Manipulate
Types</a> Types</a>
@ -126,7 +126,7 @@
the input type. the input type.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Sized Types">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.sized"></a><a class="link" href="integer.html#boost_integer.integer.sized" title="Sized Types"> Sized Types</a> <a name="boost_integer.integer.sized"></a><a class="link" href="integer.html#boost_integer.integer.sized" title="Sized Types"> Sized Types</a>
</h3></div></div></div> </h3></div></div></div>
@ -139,7 +139,7 @@
<code class="literal">fast</code>. The following table describes each template's criteria. <code class="literal">fast</code>. The following table describes each template's criteria.
</p> </p>
<div class="table"> <div class="table">
<a name="id781665"></a><p class="title"><b>Table&#160;1.&#160;Criteria for the Sized Type Class Templates</b></p> <a name="boost_integer.integer.sized.criteria_for_the_sized_type_class_templates"></a><p class="title"><b>Table&#160;1.&#160;Criteria for the Sized Type Class Templates</b></p>
<div class="table-contents"><table class="table" summary="Criteria for the Sized Type Class Templates"> <div class="table-contents"><table class="table" summary="Criteria for the Sized Type Class Templates">
<colgroup> <colgroup>
<col> <col>
@ -147,199 +147,201 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Class Template Class Template
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Template Parameter Mapping Template Parameter Mapping
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_t&lt;N&gt;::least</code> <code class="literal">boost::int_t&lt;N&gt;::least</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, built-in, signed integral type with at least <span class="emphasis"><em>N</em></span> The smallest, built-in, signed integral type with at least <span class="emphasis"><em>N</em></span>
bits, including the sign bit. The parameter should be a positive number. bits, including the sign bit. The parameter should be a positive
A compile-time error results if the parameter is larger than the number number. A compile-time error results if the parameter is larger
of bits in the largest integer type. than the number of bits in the largest integer type.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_t&lt;N&gt;::fast</code> <code class="literal">boost::int_t&lt;N&gt;::fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate, built-in, signed integral type with at least The easiest-to-manipulate, built-in, signed integral type with
<span class="emphasis"><em>N</em></span> bits, including the sign bit. The parameter at least <span class="emphasis"><em>N</em></span> bits, including the sign bit. The
should be a positive number. A compile-time error results if the parameter parameter should be a positive number. A compile-time error results
is larger than the number of bits in the largest integer type. if the parameter is larger than the number of bits in the largest
</p> integer type.
</td> </p>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_t&lt;N&gt;::exact</code> <code class="literal">boost::int_t&lt;N&gt;::exact</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A built-in, signed integral type with exactly <span class="emphasis"><em>N</em></span> A built-in, signed integral type with exactly <span class="emphasis"><em>N</em></span>
bits, including the sign bit. The parameter should be a positive number. bits, including the sign bit. The parameter should be a positive
Note that the member <span class="emphasis"><em>exact</em></span> is defined <span class="bold"><strong>only</strong></span> if there exists a type with exactly <span class="emphasis"><em>N</em></span> number. Note that the member <span class="emphasis"><em>exact</em></span> is defined
bits. <span class="bold"><strong>only</strong></span> if there exists a type with
</p> exactly <span class="emphasis"><em>N</em></span> bits.
</td> </p>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::uint_t&lt;N&gt;::least</code> <code class="literal">boost::uint_t&lt;N&gt;::least</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, built-in, unsigned integral type with at least <span class="emphasis"><em>N</em></span> The smallest, built-in, unsigned integral type with at least <span class="emphasis"><em>N</em></span>
bits. The parameter should be a positive number. A compile-time error bits. The parameter should be a positive number. A compile-time
results if the parameter is larger than the number of bits in the largest error results if the parameter is larger than the number of bits
integer type. in the largest integer type.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::uint_t&lt;N&gt;::fast</code> <code class="literal">boost::uint_t&lt;N&gt;::fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate, built-in, unsigned integral type with at The easiest-to-manipulate, built-in, unsigned integral type with
least <span class="emphasis"><em>N</em></span> bits. The parameter should be a positive at least <span class="emphasis"><em>N</em></span> bits. The parameter should be a
number. A compile-time error results if the parameter is larger than positive number. A compile-time error results if the parameter
the number of bits in the largest integer type. is larger than the number of bits in the largest integer type.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::uint_t&lt;N&gt;::exact</code> <code class="literal">boost::uint_t&lt;N&gt;::exact</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A built-in, unsigned integral type with exactly <span class="emphasis"><em>N</em></span> A built-in, unsigned integral type with exactly <span class="emphasis"><em>N</em></span>
bits. The parameter should be a positive number. A compile-time error bits. The parameter should be a positive number. A compile-time
results if the parameter is larger than the number of bits in the largest error results if the parameter is larger than the number of bits
integer type. Note that the member <span class="emphasis"><em>exact</em></span> is defined in the largest integer type. Note that the member <span class="emphasis"><em>exact</em></span>
<span class="bold"><strong>only</strong></span> if there exists a type with exactly is defined <span class="bold"><strong>only</strong></span> if there exists
N bits. a type with exactly N bits.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_max_value_t&lt;V&gt;::last</code> <code class="literal">boost::int_max_value_t&lt;V&gt;::last</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, built-in, signed integral type that can hold all the The smallest, built-in, signed integral type that can hold all
values in the inclusive range <span class="emphasis"><em>0 - V</em></span>. The parameter the values in the inclusive range <span class="emphasis"><em>0 - V</em></span>. The
should be a positive number. parameter should be a positive number.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_max_value_t&lt;V&gt;::fast</code> <code class="literal">boost::int_max_value_t&lt;V&gt;::fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate, built-in, signed integral type that can The easiest-to-manipulate, built-in, signed integral type that
hold all the values in the inclusive range <span class="emphasis"><em>0 - V</em></span>. can hold all the values in the inclusive range <span class="emphasis"><em>0 - V</em></span>.
The parameter should be a positive number. The parameter should be a positive number.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_min_value_t&lt;V&gt;::least</code> <code class="literal">boost::int_min_value_t&lt;V&gt;::least</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, built-in, signed integral type that can hold all the The smallest, built-in, signed integral type that can hold all
values in the inclusive range <span class="emphasis"><em>V - 0</em></span>. The parameter the values in the inclusive range <span class="emphasis"><em>V - 0</em></span>. The
should be a negative number. parameter should be a negative number.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::int_min_value_t&lt;V&gt;::fast</code> <code class="literal">boost::int_min_value_t&lt;V&gt;::fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate, built-in, signed integral type that can The easiest-to-manipulate, built-in, signed integral type that
hold all the values in the inclusive range <span class="emphasis"><em>V - 0</em></span>. can hold all the values in the inclusive range <span class="emphasis"><em>V - 0</em></span>.
The parameter should be a negative number. The parameter should be a negative number.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::uint_value_t&lt;V&gt;::least</code> <code class="literal">boost::uint_value_t&lt;V&gt;::least</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, built-in, unsigned integral type that can hold all positive The smallest, built-in, unsigned integral type that can hold all
values up to and including <span class="emphasis"><em>V</em></span>. The parameter should positive values up to and including <span class="emphasis"><em>V</em></span>. The
be a positive number. parameter should be a positive number.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">boost::uint_value_t&lt;V&gt;::fast</code> <code class="literal">boost::uint_value_t&lt;V&gt;::fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate, built-in, unsigned integral type that can The easiest-to-manipulate, built-in, unsigned integral type that
hold all positive values up to and including <span class="emphasis"><em>V</em></span>. can hold all positive values up to and including <span class="emphasis"><em>V</em></span>.
The parameter should be a positive number. The parameter should be a positive number.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>
<br class="table-break"> <br class="table-break">
</div> </div>
<div class="section" lang="en"> <div class="section" title="Example">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.example"></a><a class="link" href="integer.html#boost_integer.integer.example" title="Example">Example</a> <a name="boost_integer.integer.example"></a><a class="link" href="integer.html#boost_integer.integer.example" title="Example">Example</a>
</h3></div></div></div> </h3></div></div></div>
@ -361,7 +363,7 @@
<span class="special">}</span> <span class="special">}</span>
</pre> </pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Demonstration Program">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.demonstration_program"></a><a class="link" href="integer.html#boost_integer.integer.demonstration_program" title="Demonstration Program">Demonstration <a name="boost_integer.integer.demonstration_program"></a><a class="link" href="integer.html#boost_integer.integer.demonstration_program" title="Demonstration Program">Demonstration
Program</a> Program</a>
@ -372,27 +374,27 @@
of the sized type class templates. of the sized type class templates.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Rationale">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.rationale"></a><a class="link" href="integer.html#boost_integer.integer.rationale" title="Rationale">Rationale</a> <a name="boost_integer.integer.rationale"></a><a class="link" href="integer.html#boost_integer.integer.rationale" title="Rationale">Rationale</a>
</h3></div></div></div> </h3></div></div></div>
<p> <p>
The rationale for the design of the templates in this header includes: The rationale for the design of the templates in this header includes:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
Avoid recursion because of concern about C++'s limited guaranteed recursion Avoid recursion because of concern about C++'s limited guaranteed recursion
depth (17). depth (17).
</li> </li>
<li> <li class="listitem">
Avoid macros on general principles. Avoid macros on general principles.
</li> </li>
<li> <li class="listitem">
Try to keep the design as simple as possible. Try to keep the design as simple as possible.
</li> </li>
</ul></div> </ul></div>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Alternative">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.alternative"></a><a class="link" href="integer.html#boost_integer.integer.alternative" title="Alternative">Alternative</a> <a name="boost_integer.integer.alternative"></a><a class="link" href="integer.html#boost_integer.integer.alternative" title="Alternative">Alternative</a>
</h3></div></div></div> </h3></div></div></div>
@ -401,7 +403,7 @@
to use the types supplied in <a href="../../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a>. to use the types supplied in <a href="../../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a>.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Credits">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.integer.credits"></a><a class="link" href="integer.html#boost_integer.integer.credits" title="Credits">Credits</a> <a name="boost_integer.integer.credits"></a><a class="link" href="integer.html#boost_integer.integer.credits" title="Credits">Credits</a>
</h3></div></div></div> </h3></div></div></div>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Compile Time log2 Calculation</title> <title>Compile Time log2 Calculation</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="mask.html" title="Integer Masks"> <link rel="prev" href="mask.html" title="Integer Masks">
@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="mask.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="minmax.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="mask.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="minmax.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Compile Time log2 Calculation">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.log2"></a><a class="link" href="log2.html" title="Compile Time log2 Calculation"> Compile Time log2 Calculation</a> <a name="boost_integer.log2"></a><a class="link" href="log2.html" title="Compile Time log2 Calculation"> Compile Time log2 Calculation</a>
</h2></div></div></div> </h2></div></div></div>
@ -39,7 +39,7 @@
determines the position of the highest bit in a given value. This facility determines the position of the highest bit in a given value. This facility
is useful for solving generic programming problems. is useful for solving generic programming problems.
</p> </p>
<div class="section" lang="en"> <div class="section" title="Synopsis">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.log2.synopsis"></a><a class="link" href="log2.html#boost_integer.log2.synopsis" title="Synopsis">Synopsis</a> <a name="boost_integer.log2.synopsis"></a><a class="link" href="log2.html#boost_integer.log2.synopsis" title="Synopsis">Synopsis</a>
</h3></div></div></div> </h3></div></div></div>
@ -66,7 +66,7 @@
<span class="special">}</span> <span class="comment">// namespace boost <span class="special">}</span> <span class="comment">// namespace boost
</span></pre> </span></pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Usage">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.log2.usage"></a><a class="link" href="log2.html#boost_integer.log2.usage" title="Usage">Usage</a> <a name="boost_integer.log2.usage"></a><a class="link" href="log2.html#boost_integer.log2.usage" title="Usage">Usage</a>
</h3></div></div></div> </h3></div></div></div>
@ -85,18 +85,18 @@
<p> <p>
Note: Note:
</p> </p>
<div class="itemizedlist"><ul type="disc"> <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li> <li class="listitem">
<code class="literal">static_log2_argument_type</code> is an <span class="emphasis"><em>unsigned integer <code class="literal">static_log2_argument_type</code> is an <span class="emphasis"><em>unsigned integer
type</em></span> (C++ standard, 3.9.1p3). type</em></span> (C++ standard, 3.9.1p3).
</li> </li>
<li> <li class="listitem">
<code class="literal">static_log2_result_type</code> is an <span class="emphasis"><em>integer type</em></span> <code class="literal">static_log2_result_type</code> is an <span class="emphasis"><em>integer type</em></span>
(C++ standard, 3.9.1p7). (C++ standard, 3.9.1p7).
</li> </li>
</ul></div> </ul></div>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Demonstration Program">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.log2.demonstration_program"></a><a class="link" href="log2.html#boost_integer.log2.demonstration_program" title="Demonstration Program">Demonstration <a name="boost_integer.log2.demonstration_program"></a><a class="link" href="log2.html#boost_integer.log2.demonstration_program" title="Demonstration Program">Demonstration
Program</a> Program</a>
@ -107,7 +107,7 @@
of the binary logarithm class template. of the binary logarithm class template.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Rationale">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.log2.rationale"></a><a class="link" href="log2.html#boost_integer.log2.rationale" title="Rationale">Rationale</a> <a name="boost_integer.log2.rationale"></a><a class="link" href="log2.html#boost_integer.log2.rationale" title="Rationale">Rationale</a>
</h3></div></div></div> </h3></div></div></div>
@ -120,7 +120,7 @@
to be available statically (<span class="emphasis"><em>i.e.</em></span> at compile-time). to be available statically (<span class="emphasis"><em>i.e.</em></span> at compile-time).
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Credits">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.log2.credits"></a><a class="link" href="log2.html#boost_integer.log2.credits" title="Credits">Credits</a> <a name="boost_integer.log2.credits"></a><a class="link" href="log2.html#boost_integer.log2.credits" title="Credits">Credits</a>
</h3></div></div></div> </h3></div></div></div>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Integer Masks</title> <title>Integer Masks</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="integer.html" title="Integer Type Selection"> <link rel="prev" href="integer.html" title="Integer Type Selection">
@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="integer.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="log2.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="integer.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="log2.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Integer Masks">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.mask"></a><a class="link" href="mask.html" title="Integer Masks"> Integer Masks</a> <a name="boost_integer.mask"></a><a class="link" href="mask.html" title="Integer Masks"> Integer Masks</a>
</h2></div></div></div> </h2></div></div></div>
@ -41,7 +41,7 @@
<dt><span class="section"><a href="mask.html#boost_integer.mask.rationale">Rationale</a></span></dt> <dt><span class="section"><a href="mask.html#boost_integer.mask.rationale">Rationale</a></span></dt>
<dt><span class="section"><a href="mask.html#boost_integer.mask.credits">Credits</a></span></dt> <dt><span class="section"><a href="mask.html#boost_integer.mask.credits">Credits</a></span></dt>
</dl></div> </dl></div>
<div class="section" lang="en"> <div class="section" title="Overview">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.overview"></a><a class="link" href="mask.html#boost_integer.mask.overview" title="Overview">Overview</a> <a name="boost_integer.mask.overview"></a><a class="link" href="mask.html#boost_integer.mask.overview" title="Overview">Overview</a>
</h3></div></div></div> </h3></div></div></div>
@ -52,7 +52,7 @@
type selection templates</a> header. type selection templates</a> header.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Synopsis">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.synopsis"></a><a class="link" href="mask.html#boost_integer.mask.synopsis" title="Synopsis">Synopsis</a> <a name="boost_integer.mask.synopsis"></a><a class="link" href="mask.html#boost_integer.mask.synopsis" title="Synopsis">Synopsis</a>
</h3></div></div></div> </h3></div></div></div>
@ -90,7 +90,7 @@
<span class="special">}</span> <span class="comment">// namespace boost <span class="special">}</span> <span class="comment">// namespace boost
</span></pre> </span></pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Single Bit-Mask Class Template">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.single_bit_mask_class_template"></a><a class="link" href="mask.html#boost_integer.mask.single_bit_mask_class_template" title="Single Bit-Mask Class Template">Single <a name="boost_integer.mask.single_bit_mask_class_template"></a><a class="link" href="mask.html#boost_integer.mask.single_bit_mask_class_template" title="Single Bit-Mask Class Template">Single
Bit-Mask Class Template</a> Bit-Mask Class Template</a>
@ -105,7 +105,7 @@
of <code class="literal">high_bit_mask_t</code>. of <code class="literal">high_bit_mask_t</code>.
</p> </p>
<div class="table"> <div class="table">
<a name="id782866"></a><p class="title"><b>Table&#160;2.&#160;Members of the `boost::high_bit_mask_t` Class Template</b></p> <a name="boost_integer.mask.single_bit_mask_class_template.members_of_the__boost__high_bit_mask_t__class_template"></a><p class="title"><b>Table&#160;2.&#160;Members of the `boost::high_bit_mask_t` Class Template</b></p>
<div class="table-contents"><table class="table" summary="Members of the `boost::high_bit_mask_t` Class Template"> <div class="table-contents"><table class="table" summary="Members of the `boost::high_bit_mask_t` Class Template">
<colgroup> <colgroup>
<col> <col>
@ -113,84 +113,85 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Member Member
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Meaning Meaning
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">least</code> <code class="literal">least</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, unsigned, built-in type that supports the given bit position. The smallest, unsigned, built-in type that supports the given bit
</p> position.
</td> </p>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">fast</code> <code class="literal">fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate analog of <code class="literal">least</code>. The easiest-to-manipulate analog of <code class="literal">least</code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">high_bit</code> <code class="literal">high_bit</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A <code class="literal">least</code> constant of the value 2<sup>Bit</sup>. A <code class="literal">least</code> constant of the value 2<sup>Bit</sup>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">high_bit_fast</code> <code class="literal">high_bit_fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A <code class="literal">fast</code> analog of <code class="literal">high_bit</code>. A <code class="literal">fast</code> analog of <code class="literal">high_bit</code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">bit_position</code> <code class="literal">bit_position</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The value of the template parameter, in case its needed from a renamed The value of the template parameter, in case its needed from a
instantiation of the class template. renamed instantiation of the class template.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>
<br class="table-break"> <br class="table-break">
</div> </div>
<div class="section" lang="en"> <div class="section" title="Group Bit-Mask Class Template">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.group_bit_mask_class_template"></a><a class="link" href="mask.html#boost_integer.mask.group_bit_mask_class_template" title="Group Bit-Mask Class Template">Group <a name="boost_integer.mask.group_bit_mask_class_template"></a><a class="link" href="mask.html#boost_integer.mask.group_bit_mask_class_template" title="Group Bit-Mask Class Template">Group
Bit-Mask Class Template</a> Bit-Mask Class Template</a>
@ -204,7 +205,7 @@
type. The following table describes the members of <code class="literal">low_bits_mask_t</code>. type. The following table describes the members of <code class="literal">low_bits_mask_t</code>.
</p> </p>
<div class="table"> <div class="table">
<a name="id783074"></a><p class="title"><b>Table&#160;3.&#160;Members of the [^boost::low_bits_mask_t] Class Template</b></p> <a name="boost_integer.mask.group_bit_mask_class_template.members_of_the___boost__low_bits_mask_t__class_template"></a><p class="title"><b>Table&#160;3.&#160;Members of the [^boost::low_bits_mask_t] Class Template</b></p>
<div class="table-contents"><table class="table" summary="Members of the [^boost::low_bits_mask_t] Class Template"> <div class="table-contents"><table class="table" summary="Members of the [^boost::low_bits_mask_t] Class Template">
<colgroup> <colgroup>
<col> <col>
@ -212,84 +213,86 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Member Member
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Meaning Meaning
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">least</code> <code class="literal">least</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The smallest, unsigned built-in type that supports the given bit count. The smallest, unsigned built-in type that supports the given bit
</p> count.
</td> </p>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">fast</code> <code class="literal">fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The easiest-to-manipulate analog of <code class="literal">least</code>. The easiest-to-manipulate analog of <code class="literal">least</code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">sig_bits</code> <code class="literal">sig_bits</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A <code class="literal">least</code> constant of the desired bit-masking value. A <code class="literal">least</code> constant of the desired bit-masking
</p> value.
</td> </p>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">sig_bits_fast</code> <code class="literal">sig_bits_fast</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
A <code class="literal">fast</code> analog of <code class="literal">sig_bits</code>. A <code class="literal">fast</code> analog of <code class="literal">sig_bits</code>.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">bit_count</code> <code class="literal">bit_count</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
The value of the template parameter, in case its needed from a renamed The value of the template parameter, in case its needed from a
instantiation of the class template. renamed instantiation of the class template.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>
<br class="table-break"> <br class="table-break">
</div> </div>
<div class="section" lang="en"> <div class="section" title="Implementation Notes">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.implementation_notes"></a><a class="link" href="mask.html#boost_integer.mask.implementation_notes" title="Implementation Notes">Implementation <a name="boost_integer.mask.implementation_notes"></a><a class="link" href="mask.html#boost_integer.mask.implementation_notes" title="Implementation Notes">Implementation
Notes</a> Notes</a>
@ -301,7 +304,7 @@
bit counts. bit counts.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Example">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.example"></a><a class="link" href="mask.html#boost_integer.mask.example" title="Example">Example</a> <a name="boost_integer.mask.example"></a><a class="link" href="mask.html#boost_integer.mask.example" title="Example">Example</a>
</h3></div></div></div> </h3></div></div></div>
@ -325,7 +328,7 @@
</span><span class="special">}</span> </span><span class="special">}</span>
</pre> </pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Demonstration Program">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.demonstration_program"></a><a class="link" href="mask.html#boost_integer.mask.demonstration_program" title="Demonstration Program">Demonstration <a name="boost_integer.mask.demonstration_program"></a><a class="link" href="mask.html#boost_integer.mask.demonstration_program" title="Demonstration Program">Demonstration
Program</a> Program</a>
@ -336,7 +339,7 @@
of the bit mask class templates. of the bit mask class templates.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Rationale">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.rationale"></a><a class="link" href="mask.html#boost_integer.mask.rationale" title="Rationale">Rationale</a> <a name="boost_integer.mask.rationale"></a><a class="link" href="mask.html#boost_integer.mask.rationale" title="Rationale">Rationale</a>
</h3></div></div></div> </h3></div></div></div>
@ -348,7 +351,7 @@
bits. This prevents contamination of values by the higher, unused bits. bits. This prevents contamination of values by the higher, unused bits.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Credits">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.mask.credits"></a><a class="link" href="mask.html#boost_integer.mask.credits" title="Credits">Credits</a> <a name="boost_integer.mask.credits"></a><a class="link" href="mask.html#boost_integer.mask.credits" title="Credits">Credits</a>
</h3></div></div></div> </h3></div></div></div>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Compile time min/max calculation</title> <title>Compile time min/max calculation</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="log2.html" title="Compile Time log2 Calculation"> <link rel="prev" href="log2.html" title="Compile Time log2 Calculation">
@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="log2.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="log2.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Compile time min/max calculation">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.minmax"></a><a class="link" href="minmax.html" title="Compile time min/max calculation"> Compile time min/max calculation</a> <a name="boost_integer.minmax"></a><a class="link" href="minmax.html" title="Compile time min/max calculation"> Compile time min/max calculation</a>
</h2></div></div></div> </h2></div></div></div>
@ -40,7 +40,7 @@
provide a compile-time evaluation of the minimum or maximum of two integers. provide a compile-time evaluation of the minimum or maximum of two integers.
These facilities are useful for generic programming problems. These facilities are useful for generic programming problems.
</p> </p>
<div class="section" lang="en"> <div class="section" title="Synopsis">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.minmax.synopsis"></a><a class="link" href="minmax.html#boost_integer.minmax.synopsis" title="Synopsis">Synopsis</a> <a name="boost_integer.minmax.synopsis"></a><a class="link" href="minmax.html#boost_integer.minmax.synopsis" title="Synopsis">Synopsis</a>
</h3></div></div></div> </h3></div></div></div>
@ -65,7 +65,7 @@
<span class="special">}</span> <span class="special">}</span>
</pre> </pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Usage">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.minmax.usage"></a><a class="link" href="minmax.html#boost_integer.minmax.usage" title="Usage">Usage</a> <a name="boost_integer.minmax.usage"></a><a class="link" href="minmax.html#boost_integer.minmax.usage" title="Usage">Usage</a>
</h3></div></div></div> </h3></div></div></div>
@ -77,7 +77,7 @@
which is set to the respective minimum or maximum of the template's parameters. which is set to the respective minimum or maximum of the template's parameters.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Example">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.minmax.example"></a><a class="link" href="minmax.html#boost_integer.minmax.example" title="Example">Example</a> <a name="boost_integer.minmax.example"></a><a class="link" href="minmax.html#boost_integer.minmax.example" title="Example">Example</a>
</h3></div></div></div> </h3></div></div></div>
@ -112,7 +112,7 @@
</span><span class="special">}</span> </span><span class="special">}</span>
</pre> </pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Demonstration Program">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.minmax.demonstration_program"></a><a class="link" href="minmax.html#boost_integer.minmax.demonstration_program" title="Demonstration Program">Demonstration <a name="boost_integer.minmax.demonstration_program"></a><a class="link" href="minmax.html#boost_integer.minmax.demonstration_program" title="Demonstration Program">Demonstration
Program</a> Program</a>
@ -123,7 +123,7 @@
extrema class templates. extrema class templates.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Rationale">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.minmax.rationale"></a><a class="link" href="minmax.html#boost_integer.minmax.rationale" title="Rationale">Rationale</a> <a name="boost_integer.minmax.rationale"></a><a class="link" href="minmax.html#boost_integer.minmax.rationale" title="Rationale">Rationale</a>
</h3></div></div></div> </h3></div></div></div>
@ -133,7 +133,7 @@
another class template. another class template.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Credits">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.minmax.credits"></a><a class="link" href="minmax.html#boost_integer.minmax.credits" title="Credits">Credits</a> <a name="boost_integer.minmax.credits"></a><a class="link" href="minmax.html#boost_integer.minmax.credits" title="Credits">Credits</a>
</h3></div></div></div> </h3></div></div></div>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Integer Traits</title> <title>Integer Traits</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Boost.Integer"> <link rel="home" href="../index.html" title="Boost.Integer">
<link rel="up" href="../index.html" title="Boost.Integer"> <link rel="up" href="../index.html" title="Boost.Integer">
<link rel="prev" href="cstdint.html" title="Standard Integer Types"> <link rel="prev" href="cstdint.html" title="Standard Integer Types">
@ -22,7 +22,7 @@
<div class="spirit-nav"> <div class="spirit-nav">
<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="integer.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> <a accesskey="p" href="cstdint.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="integer.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Integer Traits">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.traits"></a><a class="link" href="traits.html" title="Integer Traits"> Integer Traits</a> <a name="boost_integer.traits"></a><a class="link" href="traits.html" title="Integer Traits"> Integer Traits</a>
</h2></div></div></div> </h2></div></div></div>
@ -33,7 +33,7 @@
<dt><span class="section"><a href="traits.html#boost_integer.traits.test_program">Test Program</a></span></dt> <dt><span class="section"><a href="traits.html#boost_integer.traits.test_program">Test Program</a></span></dt>
<dt><span class="section"><a href="traits.html#boost_integer.traits.acknowledgements">Acknowledgements</a></span></dt> <dt><span class="section"><a href="traits.html#boost_integer.traits.acknowledgements">Acknowledgements</a></span></dt>
</dl></div> </dl></div>
<div class="section" lang="en"> <div class="section" title="Motivation">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.traits.motivation"></a><a class="link" href="traits.html#boost_integer.traits.motivation" title="Motivation">Motivation</a> <a name="boost_integer.traits.motivation"></a><a class="link" href="traits.html#boost_integer.traits.motivation" title="Motivation">Motivation</a>
</h3></div></div></div> </h3></div></div></div>
@ -62,7 +62,7 @@
The template class <code class="literal">integer_traits</code> addresses this problem. The template class <code class="literal">integer_traits</code> addresses this problem.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Synopsis">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.traits.synopsis"></a><a class="link" href="traits.html#boost_integer.traits.synopsis" title="Synopsis">Synopsis</a> <a name="boost_integer.traits.synopsis"></a><a class="link" href="traits.html#boost_integer.traits.synopsis" title="Synopsis">Synopsis</a>
</h3></div></div></div> </h3></div></div></div>
@ -82,7 +82,7 @@
<span class="special">}</span> <span class="special">}</span>
</pre> </pre>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Description">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.traits.description"></a><a class="link" href="traits.html#boost_integer.traits.description" title="Description">Description</a> <a name="boost_integer.traits.description"></a><a class="link" href="traits.html#boost_integer.traits.description" title="Description">Description</a>
</h3></div></div></div> </h3></div></div></div>
@ -102,71 +102,71 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
member member
</p> </p>
</th> </th>
<th> <th>
<p> <p>
type type
</p> </p>
</th> </th>
<th> <th>
<p> <p>
value value
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">is_integral</code> <code class="literal">is_integral</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
bool bool
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal">true</code> <code class="literal">true</code>
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">const_min</code> <code class="literal">const_min</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal">T</code> <code class="literal">T</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
equivalent to <code class="literal">std::numeric_limits&lt;T&gt;::min()</code> equivalent to <code class="literal">std::numeric_limits&lt;T&gt;::min()</code>
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<code class="literal">const_max</code> <code class="literal">const_max</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal">T</code> <code class="literal">T</code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
equivalent to <code class="literal">std::numeric_limits&lt;T&gt;::max()</code> equivalent to <code class="literal">std::numeric_limits&lt;T&gt;::max()</code>
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -179,7 +179,7 @@
unless boost::integer_traits is also specialized. unless boost::integer_traits is also specialized.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Test Program">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.traits.test_program"></a><a class="link" href="traits.html#boost_integer.traits.test_program" title="Test Program">Test Program</a> <a name="boost_integer.traits.test_program"></a><a class="link" href="traits.html#boost_integer.traits.test_program" title="Test Program">Test Program</a>
</h3></div></div></div> </h3></div></div></div>
@ -188,7 +188,7 @@
exercises the <code class="literal">integer_traits</code> class. exercises the <code class="literal">integer_traits</code> class.
</p> </p>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Acknowledgements">
<div class="titlepage"><div><div><h3 class="title"> <div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.traits.acknowledgements"></a><a class="link" href="traits.html#boost_integer.traits.acknowledgements" title="Acknowledgements">Acknowledgements</a> <a name="boost_integer.traits.acknowledgements"></a><a class="link" href="traits.html#boost_integer.traits.acknowledgements" title="Acknowledgements">Acknowledgements</a>
</h3></div></div></div> </h3></div></div></div>

View File

@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost.Integer</title> <title>Boost.Integer</title>
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css"> <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="Boost.Integer"> <link rel="home" href="index.html" title="Boost.Integer">
<link rel="next" href="boost_integer/cstdint.html" title="Standard Integer Types"> <link rel="next" href="boost_integer/cstdint.html" title="Standard Integer Types">
</head> </head>
@ -18,7 +18,7 @@
</tr></table> </tr></table>
<hr> <hr>
<div class="spirit-nav"><a accesskey="n" href="boost_integer/cstdint.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div> <div class="spirit-nav"><a accesskey="n" href="boost_integer/cstdint.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
<div class="article" lang="en"> <div class="article" title="Boost.Integer">
<div class="titlepage"> <div class="titlepage">
<div> <div>
<div><h2 class="title"> <div><h2 class="title">
@ -39,8 +39,8 @@
</div></div> </div></div>
<div><p class="copyright">Copyright &#169; 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota, <div><p class="copyright">Copyright &#169; 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
John Maddock</p></div> John Maddock</p></div>
<div><div class="legalnotice"> <div><div class="legalnotice" title="Legal Notice">
<a name="id771218"></a><p> <a name="id554213"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying Distributed under the Boost Software License, Version 1.0. (See accompanying
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>) 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>)
</p> </p>
@ -61,7 +61,7 @@
<dt><span class="section"><a href="boost_integer/history.html"> History</a></span></dt> <dt><span class="section"><a href="boost_integer/history.html"> History</a></span></dt>
</dl> </dl>
</div> </div>
<div class="section" lang="en"> <div class="section" title="Overview">
<div class="titlepage"><div><div><h2 class="title" style="clear: both"> <div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_integer.overview"></a><a class="link" href="index.html#boost_integer.overview" title="Overview"> Overview</a> <a name="boost_integer.overview"></a><a class="link" href="index.html#boost_integer.overview" title="Overview"> Overview</a>
</h2></div></div></div> </h2></div></div></div>
@ -84,152 +84,152 @@
</colgroup> </colgroup>
<thead><tr> <thead><tr>
<th> <th>
<p> <p>
Component Component
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Header Header
</p> </p>
</th> </th>
<th> <th>
<p> <p>
Purpose Purpose
</p> </p>
</th> </th>
</tr></thead> </tr></thead>
<tbody> <tbody>
<tr> <tr>
<td> <td>
<p> <p>
Forward Declarations. Forward Declarations.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/integer_fwd.hpp" target="_top">&lt;boost/integer_fwd.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/integer_fwd.hpp" target="_top">&lt;boost/integer_fwd.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Forward declarations of classes and class templates - for use when Forward declarations of classes and class templates - for use when
just the name of a class is needed. just the name of a class is needed.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<a class="link" href="boost_integer/cstdint.html" title="Standard Integer Types">Standard Integer Types</a>. <a class="link" href="boost_integer/cstdint.html" title="Standard Integer Types">Standard Integer Types</a>.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Provides typedef's based on the 1999 C Standard header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>, wrapped in namespace boost. This Provides typedef's based on the 1999 C Standard header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>, wrapped in namespace boost.
implementation may #include the compiler supplied <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>, This implementation may #include the compiler supplied <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>, if present.
if present. </p>
</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<a class="link" href="boost_integer/traits.html" title="Integer Traits">Integer Traits</a>. <a class="link" href="boost_integer/traits.html" title="Integer Traits">Integer Traits</a>.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/integer_traits.hpp" target="_top">&lt;boost/integer_traits.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/integer_traits.hpp" target="_top">&lt;boost/integer_traits.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Class template <code class="literal">boost::integer_traits</code>, derives from Class template <code class="literal">boost::integer_traits</code>, derives
<code class="literal">std::numeric_limits</code> and adds <code class="literal">const_min</code> from <code class="literal">std::numeric_limits</code> and adds <code class="literal">const_min</code>
and <code class="literal">const_max</code> members. and <code class="literal">const_max</code> members.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<a class="link" href="boost_integer/integer.html" title="Integer Type Selection">Integer Type Selection</a>. <a class="link" href="boost_integer/integer.html" title="Integer Type Selection">Integer Type Selection</a>.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/hpp" target="_top">&lt;boost/integer.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/integer.hpp" target="_top">&lt;boost/integer.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Templates for integer type selection based on properties such as maximum Templates for integer type selection based on properties such as
value or number of bits: Use to select the type of an integer when maximum value or number of bits: Use to select the type of an integer
some property such as maximum value or number of bits is known. Useful when some property such as maximum value or number of bits is known.
for generic programming. Useful for generic programming.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<a class="link" href="boost_integer/mask.html" title="Integer Masks">Integer Masks</a>. <a class="link" href="boost_integer/mask.html" title="Integer Masks">Integer Masks</a>.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/integer/integer_mask.hpp" target="_top">&lt;boost/integer/integer_mask.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/integer/integer_mask.hpp" target="_top">&lt;boost/integer/integer_mask.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Templates for the selection of integer masks, single or lowest group, Templates for the selection of integer masks, single or lowest group,
based on the number of bits: Use to select a particular mask when the based on the number of bits: Use to select a particular mask when
bit position(s) are based on a compile-time variable. Useful for generic the bit position(s) are based on a compile-time variable. Useful
programming. for generic programming.
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<a class="link" href="boost_integer/log2.html" title="Compile Time log2 Calculation">Compile time log2 Calculation</a>. <a class="link" href="boost_integer/log2.html" title="Compile Time log2 Calculation">Compile time log2 Calculation</a>.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/integer/static_log2.hpp" target="_top">&lt;boost/integer/static_log2.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/integer/static_log2.hpp" target="_top">&lt;boost/integer/static_log2.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Template for finding the highest power of two in a number: Use to find Template for finding the highest power of two in a number: Use to
the bit-size/range based on a maximum value. Useful for generic programming. find the bit-size/range based on a maximum value. Useful for generic
</p> programming.
</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<p> <p>
<a class="link" href="boost_integer/minmax.html" title="Compile time min/max calculation">Compile time min/max calculation</a>. <a class="link" href="boost_integer/minmax.html" title="Compile time min/max calculation">Compile time min/max calculation</a>.
</p> </p>
</td> </td>
<td> <td>
<p> <p>
<code class="literal"><a href="../../../../boost/integer/static_min_max.hpp" target="_top">&lt;boost/integer/static_min_max.hpp&gt;</a></code> <code class="literal"><a href="../../../../boost/integer/static_min_max.hpp" target="_top">&lt;boost/integer/static_min_max.hpp&gt;</a></code>
</p> </p>
</td> </td>
<td> <td>
<p> <p>
Templates for finding the extrema of two numbers: Use to find a bound Templates for finding the extrema of two numbers: Use to find a bound
based on a minimum or maximum value. Useful for generic programming. based on a minimum or maximum value. Useful for generic programming.
</p> </p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -237,7 +237,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: December 11, 2009 at 17:54:58 GMT</small></p></td> <td align="left"><p><small>Last revised: April 05, 2010 at 07:20:03 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@ -43,7 +43,7 @@ compile-time value; and computing min and max of constant expressions.
] ]
[ [
[[link boost_integer.integer Integer Type Selection].] [[link boost_integer.integer Integer Type Selection].]
[[^[@../../../../boost/hpp <boost/integer.hpp>]]] [[^[@../../../../boost/integer.hpp <boost/integer.hpp>]]]
[Templates for integer type selection based on properties such as maximum value or number of bits: [Templates for integer type selection based on properties such as maximum value or number of bits:
Use to select the type of an integer when some property such as maximum value or number of bits is known. Use to select the type of an integer when some property such as maximum value or number of bits is known.
Useful for generic programming. ] Useful for generic programming. ]

View File

@ -366,58 +366,87 @@ INT#_C macros if they're not already defined (John Maddock).
******************************************************/ ******************************************************/
#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(INT8_C) #if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
(!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
//
// For the following code we get several warnings along the lines of:
//
// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
//
// So we declare this a system header to suppress these warnings.
//
#if defined(__GNUC__) && (__GNUC__ >= 4)
#pragma GCC system_header
#endif
#include <limits.h> #include <limits.h>
# define BOOST__STDC_CONSTANT_MACROS_DEFINED # define BOOST__STDC_CONSTANT_MACROS_DEFINED
# if defined(BOOST_HAS_MS_INT64) # if defined(BOOST_HAS_MS_INT64)
// //
// Borland/Intel/Microsoft compilers have width specific suffixes: // Borland/Intel/Microsoft compilers have width specific suffixes:
// //
#ifndef INT8_C
# define INT8_C(value) value##i8 # define INT8_C(value) value##i8
#endif
#ifndef INT16_C
# define INT16_C(value) value##i16 # define INT16_C(value) value##i16
#endif
#ifndef INT32_C
# define INT32_C(value) value##i32 # define INT32_C(value) value##i32
#endif
#ifndef INT64_C
# define INT64_C(value) value##i64 # define INT64_C(value) value##i64
#endif
# ifdef __BORLANDC__ # ifdef __BORLANDC__
// Borland bug: appending ui8 makes the type a signed char // Borland bug: appending ui8 makes the type a signed char
# define UINT8_C(value) static_cast<unsigned char>(value##u) # define UINT8_C(value) static_cast<unsigned char>(value##u)
# else # else
# define UINT8_C(value) value##ui8 # define UINT8_C(value) value##ui8
# endif # endif
#ifndef UINT16_C
# define UINT16_C(value) value##ui16 # define UINT16_C(value) value##ui16
#endif
#ifndef UINT32_C
# define UINT32_C(value) value##ui32 # define UINT32_C(value) value##ui32
#endif
#ifndef UINT64_C
# define UINT64_C(value) value##ui64 # define UINT64_C(value) value##ui64
#endif
#ifndef INTMAX_C
# define INTMAX_C(value) value##i64 # define INTMAX_C(value) value##i64
# define UINTMAX_C(value) value##ui64 # define UINTMAX_C(value) value##ui64
#endif
# else # else
// do it the old fashioned way: // do it the old fashioned way:
// 8-bit types ------------------------------------------------------------// // 8-bit types ------------------------------------------------------------//
# if UCHAR_MAX == 0xff # if (UCHAR_MAX == 0xff) && !defined(INT8_C)
# define INT8_C(value) static_cast<boost::int8_t>(value) # define INT8_C(value) static_cast<boost::int8_t>(value)
# define UINT8_C(value) static_cast<boost::uint8_t>(value##u) # define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
# endif # endif
// 16-bit types -----------------------------------------------------------// // 16-bit types -----------------------------------------------------------//
# if USHRT_MAX == 0xffff # if (USHRT_MAX == 0xffff) && !defined(INT16_C)
# define INT16_C(value) static_cast<boost::int16_t>(value) # define INT16_C(value) static_cast<boost::int16_t>(value)
# define UINT16_C(value) static_cast<boost::uint16_t>(value##u) # define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
# endif # endif
// 32-bit types -----------------------------------------------------------// // 32-bit types -----------------------------------------------------------//
#ifndef INT32_C
# if UINT_MAX == 0xffffffff # if (UINT_MAX == 0xffffffff)
# define INT32_C(value) value # define INT32_C(value) value
# define UINT32_C(value) value##u # define UINT32_C(value) value##u
# elif ULONG_MAX == 0xffffffff # elif ULONG_MAX == 0xffffffff
# define INT32_C(value) value##L # define INT32_C(value) value##L
# define UINT32_C(value) value##uL # define UINT32_C(value) value##uL
# endif # endif
#endif
// 64-bit types + intmax_t and uintmax_t ----------------------------------// // 64-bit types + intmax_t and uintmax_t ----------------------------------//
#ifndef INT64_C
# if defined(BOOST_HAS_LONG_LONG) && \ # if defined(BOOST_HAS_LONG_LONG) && \
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_LLONG_MAX)) (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_LLONG_MAX))
@ -462,7 +491,7 @@ INT#_C macros if they're not already defined (John Maddock).
# define INTMAX_C(value) INT64_C(value) # define INTMAX_C(value) INT64_C(value)
# define UINTMAX_C(value) UINT64_C(value) # define UINTMAX_C(value) UINT64_C(value)
# endif # endif
#endif
# endif // Borland/Microsoft specific width suffixes # endif // Borland/Microsoft specific width suffixes
#endif // INT#_C macros. #endif // INT#_C macros.

View File

@ -57,6 +57,8 @@ namespace boost
// no specializations for 0 and 5: requests for a type > long are in error // no specializations for 0 and 5: requests for a type > long are in error
#ifdef BOOST_HAS_LONG_LONG #ifdef BOOST_HAS_LONG_LONG
template<> struct int_least_helper<1> { typedef boost::long_long_type least; }; template<> struct int_least_helper<1> { typedef boost::long_long_type least; };
#elif defined(BOOST_HAS_MS_INT64)
template<> struct int_least_helper<1> { typedef __int64 least; };
#endif #endif
template<> struct int_least_helper<2> { typedef long least; }; template<> struct int_least_helper<2> { typedef long least; };
template<> struct int_least_helper<3> { typedef int least; }; template<> struct int_least_helper<3> { typedef int least; };
@ -64,6 +66,8 @@ namespace boost
template<> struct int_least_helper<5> { typedef signed char least; }; template<> struct int_least_helper<5> { typedef signed char least; };
#ifdef BOOST_HAS_LONG_LONG #ifdef BOOST_HAS_LONG_LONG
template<> struct int_least_helper<6> { typedef boost::ulong_long_type least; }; template<> struct int_least_helper<6> { typedef boost::ulong_long_type least; };
#elif defined(BOOST_HAS_MS_INT64)
template<> struct int_least_helper<6> { typedef unsigned __int64 least; };
#endif #endif
template<> struct int_least_helper<7> { typedef unsigned long least; }; template<> struct int_least_helper<7> { typedef unsigned long least; };
template<> struct int_least_helper<8> { typedef unsigned int least; }; template<> struct int_least_helper<8> { typedef unsigned int least; };

View File

@ -77,12 +77,18 @@ template < >
template < > template < >
class integer_traits< unsigned long >; class integer_traits< unsigned long >;
#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && (defined(BOOST_HAS_LONG_LONG) || defined(BOOST_HAS_MS_INT64)) #if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG)
template < > template < >
class integer_traits< ::boost::long_long_type>; class integer_traits< ::boost::long_long_type>;
template < > template < >
class integer_traits< ::boost::ulong_long_type >; class integer_traits< ::boost::ulong_long_type >;
#elif !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_MS_INT64)
template < >
class integer_traits<__int64>;
template < >
class integer_traits<unsigned __int64>;
#endif #endif