|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r64020 - in sandbox/SOC/2010/bits_and_ints/libs/integer/doc: . html html/boost_integer
From: muriloufg_at_[hidden]
Date: 2010-07-14 15:50:32
Author: murilov
Date: 2010-07-14 15:50:31 EDT (Wed, 14 Jul 2010)
New Revision: 64020
URL: http://svn.boost.org/trac/boost/changeset/64020
Log:
Added the ilog2 function documentation.
Text files modified:
sandbox/SOC/2010/bits_and_ints/libs/integer/doc/bits_and_ints.qbk | 21 +
sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/bits_and_ints.html | 411 ++++++++++++++++++++-------------------
sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/history.html | 4
sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/index.html | 2
4 files changed, 230 insertions(+), 208 deletions(-)
Modified: sandbox/SOC/2010/bits_and_ints/libs/integer/doc/bits_and_ints.qbk
==============================================================================
--- sandbox/SOC/2010/bits_and_ints/libs/integer/doc/bits_and_ints.qbk (original)
+++ sandbox/SOC/2010/bits_and_ints/libs/integer/doc/bits_and_ints.qbk 2010-07-14 15:50:31 EDT (Wed, 14 Jul 2010)
@@ -1,7 +1,9 @@
[section:bits_and_ints Bits and Ints]
[section Overview]
-The intent of this library is to extend Boost.Integer with fast integer algorithms and utilities. This library can be included via [@../../../../boost/integer/bits_and_ints.hpp <boost/integer/bits_and_ints.hpp>].
+The intent of this library is to extend Boost.Integer with fast integer algorithms and utilities.
+The motivation for this library is to provide integer algorithms and utilities optimized by doing binary manipulations so that it uses less CPU cycles, memory access and conditional branches. This library contains some classical integer algorithms such as population count, reversing bits, sign extension and bit interleaving.
+This library can be included via [@../../../../boost/integer/bits_and_ints.hpp <boost/integer/bits_and_ints.hpp>].
[endsect]
[section Absolute Value in Compile-Time ]
@@ -380,6 +382,23 @@
[endsect]
+[section Integer Logarithm Base 2 (ilog2 function) ]
+The header file [@../../../../boost/integer/ilog2.hpp <boost/integer/ilog2.hpp>] defines `ilog2`
+function wich calculates the logarithm in base two of a given integral value.
+
+[section Synopsis]
+
+ template <typename T>
+ inline T ilog2(T value);
+
+[endsect]
+
+*[*Remarks: ] If `value` is 0, the result is [*undefined].
+*[*Requires: ] `T` to be an integral type.
+*[*Returns: ] The integer logarithm in base 2 of `value` rounded down.
+
+[endsect]
+
[section `is_integral_constant<>` metafunction ]
The header file [@../../../../boost/integer/is_integral_constant.hpp <boost/integer/is_integral_constant.hpp>] defines
`is_integral_constant<>` static metafunction wich verifies if an given template parameter is or not a `mpl::integral_c<>`.
Modified: sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/bits_and_ints.html
==============================================================================
--- sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/bits_and_ints.html (original)
+++ sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/bits_and_ints.html 2010-07-14 15:50:31 EDT (Wed, 14 Jul 2010)
@@ -41,6 +41,8 @@
Trailing Zeros</a></span></dt>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.greatest_common_divisor_">Greatest
Common Divisor </a></span></dt>
+<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.integer_logarithm_base_2__ilog2_function__">Integer
+ Logarithm Base 2 (ilog2 function) </a></span></dt>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints._is_integral_constant____metafunction_"><code class="computeroutput"><span class="identifier">is_integral_constant</span><span class="special"><></span></code>
metafunction </a></span></dt>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.least_common_multiple_">Least
@@ -64,7 +66,11 @@
</h3></div></div></div>
<p>
The intent of this library is to extend Boost.Integer with fast integer algorithms
- and utilities. This library can be included via <boost/integer/bits_and_ints.hpp>.
+ and utilities. The motivation for this library is to provide integer algorithms
+ and utilities optimized by doing binary manipulations so that it uses less
+ CPU cycles, memory access and conditional branches. This library contains
+ some classical integer algorithms such as population count, reversing bits,
+ sign extension and bit interleaving. This library can be included via <boost/integer/bits_and_ints.hpp>.
</p>
</div>
<div class="section" title="Absolute Value in Compile-Time">
@@ -325,7 +331,7 @@
</li>
<li class="listitem"><span class="bold"><strong>Example:</strong></span></li>
</ul></div>
-<pre class="programlisting"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">flip_bit</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">2</span><span class="special">>::</span><span class="identifier">value</span> <span class="special">==</span> <span class="number">14</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">flip_bit</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">2</span><span class="special">>::</span><span class="identifier">value</span> <span class="special">==</span> <span class="number">14</span> <span class="special">));</span>
</pre>
</div>
<div class="section" title="Runtime version">
@@ -432,10 +438,10 @@
<div class="toc"><dl>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.non_member_function__bit_reversal_">Non-Member
Function <code class="computeroutput"><span class="identifier">bit_reversal</span></code></a></span></dt>
-<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__static_bit_reversal___">Template
- Class <code class="computeroutput"><span class="identifier">static_bit_reversal</span><span class="special"><></span></code></a></span></dt>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__mpl__bit_reversal___">Template
Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bit_reversal</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__static_bit_reversal___">Template
+ Class <code class="computeroutput"><span class="identifier">static_bit_reversal</span><span class="special"><></span></code></a></span></dt>
<dt><span class="section">Examples</span></dt>
</dl></div>
<p>
@@ -497,20 +503,18 @@
</li>
</ul></div>
</div>
-<div class="section" title="Template Class static_bit_reversal<>">
+<div class="section" title="Template Class mpl::bit_reversal<>">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_integer.bits_and_ints.bit_reversal.template_class__static_bit_reversal___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__static_bit_reversal___" title="Template Class static_bit_reversal<>">Template
- Class <code class="computeroutput"><span class="identifier">static_bit_reversal</span><span class="special"><></span></code></a>
+<a name="boost_integer.bits_and_ints.bit_reversal.template_class__mpl__bit_reversal___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__mpl__bit_reversal___" title="Template Class mpl::bit_reversal<>">Template
+ Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bit_reversal</span><span class="special"><></span></code></a>
</h4></div></div></div>
<p>
- The compile-time version can be included via <boost/integer/static_bit_reversal.hpp>.
+ The MPL version can be included via <boost/integer/static_bit_reversal.hpp>.
The result will be in <code class="computeroutput"><span class="identifier">value</span></code>
member.
</p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_bit_reversal</span> <span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bit_reversal</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
</pre>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><span class="bold"><strong>Template Parameters</strong></span></li></ul></div>
<div class="informaltable"><table class="table">
@@ -530,52 +534,38 @@
</p>
</th>
</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
- The data type.
- </p>
- </td>
-</tr>
-<tr>
+<tbody><tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">Value</span></code>
+ <code class="computeroutput"><span class="identifier">IC</span></code>
</p>
</td>
<td>
<p>
- The data to be reversed.
+ A <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
+ type wich holds an integral constant to be reversed.
</p>
</td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">T</span></code>
- must be an integral type.
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">IC</span></code>
+ must be an <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
+ type.
</li></ul></div>
</div>
-<div class="section" title="Template Class mpl::bit_reversal<>">
+<div class="section" title="Template Class static_bit_reversal<>">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_integer.bits_and_ints.bit_reversal.template_class__mpl__bit_reversal___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__mpl__bit_reversal___" title="Template Class mpl::bit_reversal<>">Template
- Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bit_reversal</span><span class="special"><></span></code></a>
+<a name="boost_integer.bits_and_ints.bit_reversal.template_class__static_bit_reversal___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.bit_reversal.template_class__static_bit_reversal___" title="Template Class static_bit_reversal<>">Template
+ Class <code class="computeroutput"><span class="identifier">static_bit_reversal</span><span class="special"><></span></code></a>
</h4></div></div></div>
<p>
- The MPL version can be included via <boost/integer/static_bit_reversal.hpp>.
+ The compile-time version can be included via <boost/integer/static_bit_reversal.hpp>.
The result will be in <code class="computeroutput"><span class="identifier">value</span></code>
member.
</p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bit_reversal</span> <span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">static_bit_reversal</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bit_reversal</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><span class="bold"><strong>Template Parameters</strong></span></li></ul></div>
<div class="informaltable"><table class="table">
@@ -595,24 +585,36 @@
</p>
</th>
</tr></thead>
-<tbody><tr>
+<tbody>
+<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">IC</span></code>
+ <code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
- A <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
- type wich holds an integral constant to be reversed.
+ The data type.
</p>
</td>
-</tr></tbody>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The data to be reversed.
+ </p>
+ </td>
+</tr>
+</tbody>
</table></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">IC</span></code>
- must be an <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
- type.
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">T</span></code>
+ must be an integral type.
</li></ul></div>
</div>
<div class="section" title="Examples">
@@ -626,14 +628,8 @@
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
- <span class="comment">// data = 0101 0101
-</span> <span class="identifier">uint8_t</span> <span class="identifier">data</span> <span class="special">=</span> <span class="number">0x55</span><span class="special">;</span>
-
- <span class="identifier">uint8_t</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bit_reversal</span><span class="special">(</span><span class="identifier">data</span><span class="special">);</span>
-
- <span class="comment">// will print 0xaa (1010 1010)
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">hex</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// -1
-</span><span class="special">}</span>
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bit_reversal</span><span class="special">(</span><span class="number">0x55</span><span class="special">)</span> <span class="special">==</span> <span class="number">0xAA</span><span class="special">));</span>
+<span class="special">}</span>
</pre>
</li>
<li class="listitem">
@@ -641,12 +637,8 @@
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
-<span class="special">{</span>
- <span class="comment">// 0x30A5 == 0011 0000 1010 0101
-</span> <span class="identifier">uint16_t</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_sign_extend</span><span class="special"><</span><span class="identifier">uint16_t</span><span class="special">,</span> <span class="number">0x30A5</span><span class="special">>::</span><span class="identifier">value</span><span class="special">;</span>
-
- <span class="comment">// will print 0x5A0B
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">hex</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_bit_reversal</span><span class="special"><</span><span class="identifier">uint16_t</span><span class="special">,</span> <span class="number">0x30A5</span><span class="special">>::</span><span class="identifier">value</span> <span class="special">==</span> <span class="number">0xA50C</span><span class="special">));</span>
<span class="special">}</span>
</pre>
</li>
@@ -670,10 +662,10 @@
<span class="identifier">T</span> <span class="identifier">clear_least_bit_set</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">value</span><span class="special">);</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">clear_least_bit_set</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">clear_least_bit_set</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_clear_least_bit_set</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">static_clear_least_bit_set</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">clear_least_bit_set</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -738,10 +730,10 @@
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">count_trailing_zeros</span><span class="special">(</span><span class="identifier">uintmax_t</span> <span class="identifier">value</span><span class="special">);</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">count_trailing_zeros</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">count_trailing_zeros</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
<span class="keyword">template</span> <span class="special"><</span><span class="identifier">uintmax_t</span> <span class="identifier">Value</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_count_trailing_zeros</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">static_count_trailing_zeros</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">count_trailing_zeros</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">uintmax_t</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -777,7 +769,7 @@
<a name="boost_integer.bits_and_ints.greatest_common_divisor_.synopsis"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.greatest_common_divisor_.synopsis" title="Synopsis">Synopsis</a>
</h4></div></div></div>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ICT1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ICT2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">gcd</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">uintmax_t</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">gcd</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ICT1</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -793,6 +785,40 @@
</li>
</ul></div>
</div>
+<div class="section" title="Integer Logarithm Base 2 (ilog2 function)">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_integer.bits_and_ints.integer_logarithm_base_2__ilog2_function__"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.integer_logarithm_base_2__ilog2_function__" title="Integer Logarithm Base 2 (ilog2 function)">Integer
+ Logarithm Base 2 (ilog2 function) </a>
+</h3></div></div></div>
+<div class="toc"><dl><dt><span class="section">Synopsis</span></dt></dl></div>
+<p>
+ The header file <boost/integer/ilog2.hpp>
+ defines <code class="computeroutput"><span class="identifier">ilog2</span></code> function wich
+ calculates the logarithm in base two of a given integral value.
+ </p>
+<div class="section" title="Synopsis">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_integer.bits_and_ints.integer_logarithm_base_2__ilog2_function__.synopsis"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.integer_logarithm_base_2__ilog2_function__.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">ilog2</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">value</span><span class="special">);</span>
+</pre>
+</div>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+<span class="bold"><strong>Remarks: </strong></span> If <code class="computeroutput"><span class="identifier">value</span></code>
+ is 0, the result is <span class="bold"><strong>undefined</strong></span>.
+ </li>
+<li class="listitem">
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">T</span></code>
+ to be an integral type.
+ </li>
+<li class="listitem">
+<span class="bold"><strong>Returns: </strong></span> The integer logarithm in base
+ 2 of <code class="computeroutput"><span class="identifier">value</span></code> rounded down.
+ </li>
+</ul></div>
+</div>
<div class="section" title="is_integral_constant<> metafunction">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_integer.bits_and_ints._is_integral_constant____metafunction_"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints._is_integral_constant____metafunction_" title="is_integral_constant<> metafunction"><code class="computeroutput"><span class="identifier">is_integral_constant</span><span class="special"><></span></code>
@@ -809,7 +835,7 @@
<a name="boost_integer.bits_and_ints._is_integral_constant____metafunction_.synopsis"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints._is_integral_constant____metafunction_.synopsis" title="Synopsis">Synopsis</a>
</h4></div></div></div>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">is_integral_constant</span> <span class="special">{</span> <span class="emphasis"><em>implementation-defined</em></span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">is_integral_constant</span> <span class="special">:</span> <span class="identifier">and_</span><span class="special"><</span><span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -843,7 +869,7 @@
<a name="boost_integer.bits_and_ints.least_common_multiple_.synopsis"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.least_common_multiple_.synopsis" title="Synopsis">Synopsis</a>
</h4></div></div></div>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ICT1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ICT2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">lcm</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">uintmax_t</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">lcm</span> <span class="special">:</span> <span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ICT1</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -880,7 +906,7 @@
<span class="keyword">struct</span> <span class="identifier">static_pop_count</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">pop_count</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">pop_count</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="identifier">static_pop_count</span><span class="special"><</span><span class="identifier">IC</span><span class="special">::</span><span class="identifier">value</span><span class="special">>::</span><span class="identifier">value</span><span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -961,10 +987,10 @@
<span class="identifier">T</span> <span class="identifier">safe_avg</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">y</span><span class="special">);</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ICT1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ICT2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">safe_avg</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">safe_avg</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ICT1</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_safe_avg</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">static_safe_avg</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">safe_avg</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value1</span><span class="special">>,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value1</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -986,10 +1012,10 @@
<div class="toc"><dl>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.non_member_function__same_sign_">Non-Member
Function <code class="computeroutput"><span class="identifier">same_sign</span></code></a></span></dt>
-<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__static_same_sign___">Template
- Class <code class="computeroutput"><span class="identifier">static_same_sign</span><span class="special"><></span></code></a></span></dt>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__mpl__same_sign___">Template
Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__static_same_sign___">Template
+ Class <code class="computeroutput"><span class="identifier">static_same_sign</span><span class="special"><></span></code></a></span></dt>
<dt><span class="section">Examples</span></dt>
</dl></div>
<p>
@@ -1052,21 +1078,18 @@
</li>
</ul></div>
</div>
-<div class="section" title="Template Class static_same_sign<>">
+<div class="section" title="Template Class mpl::same_sign<>">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_integer.bits_and_ints.same_sign.template_class__static_same_sign___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__static_same_sign___" title="Template Class static_same_sign<>">Template
- Class <code class="computeroutput"><span class="identifier">static_same_sign</span><span class="special"><></span></code></a>
+<a name="boost_integer.bits_and_ints.same_sign.template_class__mpl__same_sign___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__mpl__same_sign___" title="Template Class mpl::same_sign<>">Template
+ Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special"><></span></code></a>
</h4></div></div></div>
<p>
- The compile-time version can be included via <boost/integer/static_same_sign.hpp>.
+ The MPL version can be included via <boost/integer/static_same_sign.hpp>.
The result will be in <code class="computeroutput"><span class="identifier">value</span></code>
member.
</p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_same_sign</span>
-<span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IC2</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">same_sign</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special"><</span><span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
</pre>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><span class="bold"><strong>Template Parameters:</strong></span></li></ul></div>
<div class="informaltable"><table class="table">
@@ -1086,53 +1109,38 @@
</p>
</th>
</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
- The data type.
- </p>
- </td>
-</tr>
-<tr>
+<tbody><tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">Value1</span></code>, <code class="computeroutput"><span class="identifier">Value2</span></code>
+ <code class="computeroutput"><span class="identifier">IC1</span></code>, <code class="computeroutput"><span class="identifier">IC2</span></code>
</p>
</td>
<td>
<p>
- The two integral values to be compared.
+ The two <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
+ to be compared.
</p>
</td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">T</span></code>
- must be an integral type.
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">IC1</span></code>
+ and <code class="computeroutput"><span class="identifier">IC2</span></code> must be <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
+ types.
</li></ul></div>
</div>
-<div class="section" title="Template Class mpl::same_sign<>">
+<div class="section" title="Template Class static_same_sign<>">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_integer.bits_and_ints.same_sign.template_class__mpl__same_sign___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__mpl__same_sign___" title="Template Class mpl::same_sign<>">Template
- Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special"><></span></code></a>
+<a name="boost_integer.bits_and_ints.same_sign.template_class__static_same_sign___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.same_sign.template_class__static_same_sign___" title="Template Class static_same_sign<>">Template
+ Class <code class="computeroutput"><span class="identifier">static_same_sign</span><span class="special"><></span></code></a>
</h4></div></div></div>
<p>
- The MPL version can be included via <boost/integer/static_same_sign.hpp>.
+ The compile-time version can be included via <boost/integer/static_same_sign.hpp>.
The result will be in <code class="computeroutput"><span class="identifier">value</span></code>
member.
</p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IC2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">same_sign</span>
-<span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value2</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">static_same_sign</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value1</span><span class="special">>,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value2</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><span class="bold"><strong>Template Parameters:</strong></span></li></ul></div>
<div class="informaltable"><table class="table">
@@ -1152,24 +1160,36 @@
</p>
</th>
</tr></thead>
-<tbody><tr>
+<tbody>
+<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">IC1</span></code>, <code class="computeroutput"><span class="identifier">IC2</span></code>
+ <code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
- The two <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
- to be compared.
+ The data type.
</p>
</td>
-</tr></tbody>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Value1</span></code>, <code class="computeroutput"><span class="identifier">Value2</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The two integral values to be compared.
+ </p>
+ </td>
+</tr>
+</tbody>
</table></div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">IC1</span></code>
- and <code class="computeroutput"><span class="identifier">IC2</span></code> must be <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
- types.
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">T</span></code>
+ must be an integral type.
</li></ul></div>
</div>
<div class="section" title="Examples">
@@ -1185,12 +1205,10 @@
<span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">first</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="identifier">second</span> <span class="special">=</span> <span class="special">-</span><span class="number">2</span><span class="special">,</span> <span class="identifier">third</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span>
- <span class="keyword">bool</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">second</span><span class="special">);</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// true
-</span>
- <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">third</span><span class="special">);</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// false
-</span><span class="special">}</span>
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span><span class="special">));</span>
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">third</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span><span class="special">));</span>
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">same_sign</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span><span class="special">));</span>
+<span class="special">}</span>
</pre>
</li>
<li class="listitem"><span class="bold"><strong>Compile-time version:</strong></span></li>
@@ -1203,12 +1221,10 @@
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
- <span class="keyword">bool</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_same_sign</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">10</span><span class="special">>::</span><span class="identifier">value</span><span class="special">;</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">//true
-</span>
- <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_same_sign</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="special">-</span><span class="number">2</span><span class="special">>::</span><span class="identifier">value</span><span class="special">;</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// false
-</span><span class="special">}</span>
+ <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_same_sign</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">10</span><span class="special">>::</span><span class="identifier">value</span><span class="special">));</span>
+ <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((!</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_same_sign</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="special">-</span><span class="number">2</span><span class="special">>::</span><span class="identifier">value</span><span class="special">));</span>
+ <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((!</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_same_sign</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">0</span><span class="special">>::</span><span class="identifier">value</span><span class="special">));</span>
+<span class="special">}</span>
</pre>
<p>
</p>
@@ -1221,10 +1237,10 @@
<div class="toc"><dl>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.non_member_function_template__sign_extend_">Non-Member
Function Template <code class="computeroutput"><span class="identifier">sign_extend</span></code></a></span></dt>
-<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__static_sign_extend___">Template
- Class <code class="computeroutput"><span class="identifier">static_sign_extend</span><span class="special"><></span></code></a></span></dt>
<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__mpl__sign_extend___">Template
Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_extend</span><span class="special"><></span></code></a></span></dt>
+<dt><span class="section"><a href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__static_sign_extend___">Template
+ Class <code class="computeroutput"><span class="identifier">static_sign_extend</span><span class="special"><></span></code></a></span></dt>
<dt><span class="section">Examples</span></dt>
</dl></div>
<p>
@@ -1307,28 +1323,25 @@
sign-extended to <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> bytes.
</li></ul></div>
</div>
-<div class="section" title="Template Class static_sign_extend<>">
+<div class="section" title="Template Class mpl::sign_extend<>">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_integer.bits_and_ints.sign_extend.template_class__static_sign_extend___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__static_sign_extend___" title="Template Class static_sign_extend<>">Template
- Class <code class="computeroutput"><span class="identifier">static_sign_extend</span><span class="special"><></span></code></a>
+<a name="boost_integer.bits_and_ints.sign_extend.template_class__mpl__sign_extend___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__mpl__sign_extend___" title="Template Class mpl::sign_extend<>">Template
+ Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_extend</span><span class="special"><></span></code></a>
</h4></div></div></div>
<p>
- The compile-time version can be included via <boost/integer/static_sign_extend.hpp>.
+ The MPL version can be included via <boost/integer/static_sign_extend.hpp>.
The result will be in <code class="computeroutput"><span class="identifier">value</span></code>
member.
</p>
-<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bits</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_sign_extend</span>
-<span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bits</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_extend</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
</pre>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
-<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">Bits</span></code>
- must be smaller than the size, in bits, of <code class="computeroutput"><span class="identifier">T</span></code>
- and <code class="computeroutput"><span class="identifier">T</span></code> must be an integral
- type.
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">IC</span></code>
+ must a <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
+ type. <code class="computeroutput"><span class="identifier">Bits</span></code> must be smaller
+ than the size in bits of <code class="computeroutput"><span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span></code>.
</li>
<li class="listitem"><span class="bold"><strong>Template Parameters:</strong></span></li>
</ul></div>
@@ -1353,24 +1366,13 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
- The data type.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Value</span></code>
+ <code class="computeroutput"><span class="identifier">IC</span></code>
</p>
</td>
<td>
<p>
- The data to be extended.
+ A <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
+ type.
</p>
</td>
</tr>
@@ -1389,28 +1391,25 @@
</tbody>
</table></div>
</div>
-<div class="section" title="Template Class mpl::sign_extend<>">
+<div class="section" title="Template Class static_sign_extend<>">
<div class="titlepage"><div><div><h4 class="title">
-<a name="boost_integer.bits_and_ints.sign_extend.template_class__mpl__sign_extend___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__mpl__sign_extend___" title="Template Class mpl::sign_extend<>">Template
- Class <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_extend</span><span class="special"><></span></code></a>
+<a name="boost_integer.bits_and_ints.sign_extend.template_class__static_sign_extend___"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.sign_extend.template_class__static_sign_extend___" title="Template Class static_sign_extend<>">Template
+ Class <code class="computeroutput"><span class="identifier">static_sign_extend</span><span class="special"><></span></code></a>
</h4></div></div></div>
<p>
- The MPL version can be included via <boost/integer/static_sign_extend.hpp>.
+ The compile-time version can be included via <boost/integer/static_sign_extend.hpp>.
The result will be in <code class="computeroutput"><span class="identifier">value</span></code>
member.
</p>
-<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bits</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_extend</span>
-<span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
-<span class="special">};</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bits</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">static_sign_extend</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign_extend</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">>,</span> <span class="identifier">Bits</span><span class="special">></span> <span class="special">{};</span>
</pre>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
-<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">IC</span></code>
- must a <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
- type. <code class="computeroutput"><span class="identifier">Bits</span></code> must be smaller
- than the size in bits of <code class="computeroutput"><span class="identifier">IC</span><span class="special">::</span><span class="identifier">value_type</span></code>.
+<span class="bold"><strong>Requires: </strong></span><code class="computeroutput"><span class="identifier">Bits</span></code>
+ must be smaller than the size, in bits, of <code class="computeroutput"><span class="identifier">T</span></code>
+ and <code class="computeroutput"><span class="identifier">T</span></code> must be an integral
+ type.
</li>
<li class="listitem"><span class="bold"><strong>Template Parameters:</strong></span></li>
</ul></div>
@@ -1435,13 +1434,24 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">IC</span></code>
+ <code class="computeroutput"><span class="identifier">T</span></code>
</p>
</td>
<td>
<p>
- A <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><></span></code>
- type.
+ The data type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The data to be extended.
</p>
</td>
</tr>
@@ -1474,10 +1484,8 @@
<span class="comment">// data is represented in 24-bits
</span> <span class="keyword">int</span> <span class="identifier">data</span> <span class="special">=</span> <span class="number">0xFFFFFF</span><span class="special">;</span> <span class="comment">// -1 in 24-bits
</span>
- <span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign_extend</span><span class="special">(</span><span class="identifier">data</span><span class="special">,</span> <span class="number">24</span><span class="special">);</span>
-
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// -1
-</span><span class="special">}</span>
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign_extend</span><span class="special">(</span><span class="identifier">data</span><span class="special">,</span> <span class="number">24</span><span class="special">)</span> <span class="special">==</span> <span class="special">-</span><span class="number">1</span><span class="special">));</span>
+<span class="special">}</span>
</pre>
</li>
<li class="listitem">
@@ -1487,10 +1495,8 @@
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
<span class="comment">// 0xFFFFF is -1 in 20-bits
-</span> <span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_sign_extend</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">0xFFFFF</span><span class="special">,</span> <span class="number">20</span><span class="special">>::</span><span class="identifier">value</span><span class="special">;</span>
-
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// -1
-</span><span class="special">}</span>
+</span> <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_sign_extend</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">0xFFFFF</span><span class="special">,</span> <span class="number">20</span><span class="special">>::</span><span class="identifier">value</span> <span class="special">==</span> <span class="special">-</span><span class="number">1</span><span class="special">));</span>
+<span class="special">}</span>
</pre>
</li>
</ul></div>
@@ -1626,10 +1632,10 @@
The compile-time versions can be included via <boost/integer/static_sign.hpp>.
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">sign</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">template</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_same_sign</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">static_same_sign</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">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
<div class="informaltable"><table class="table">
<colgroup>
@@ -1710,15 +1716,12 @@
<span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">first</span> <span class="special">=</span> <span class="special">-</span><span class="number">100</span><span class="special">,</span> <span class="identifier">second</span> <span class="special">=</span> <span class="number">340</span><span class="special">,</span> <span class="identifier">third</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
- <span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">first</span><span class="special">);</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// -1
-</span>
- <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">second</span><span class="special">);</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1
-</span>
- <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">third</span><span class="special">);</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">result</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0
-</span><span class="special">}</span>
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">first</span><span class="special">)</span> <span class="special">==</span> <span class="special">-</span><span class="number">1</span><span class="special">));</span>
+
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="number">1</span><span class="special">));</span>
+
+ <span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sign</span><span class="special">(</span><span class="identifier">third</span><span class="special">)</span> <span class="special">==</span> <span class="number">0</span><span class="special">));</span>
+<span class="special">}</span>
</pre>
<p>
</p>
@@ -1731,16 +1734,16 @@
</h3></div></div></div>
<div class="toc"><dl><dt><span class="section">Synopsis</span></dt></dl></div>
<p>
- The header file <boost/integer/swap.hpp>
- defines <code class="computeroutput"><span class="identifier">swap</span></code> function wich
- swaps 2 integral values without using a temporary variable.
+ The header file <boost/integer/swap_in_place.hpp>
+ defines <code class="computeroutput"><span class="identifier">swap_in_place</span></code> function
+ wich swaps 2 integral values without using a temporary variable.
</p>
<div class="section" title="Synopsis">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_integer.bits_and_ints.swap_without_a_temporary__in_place__.synopsis"></a><a class="link" href="bits_and_ints.html#boost_integer.bits_and_ints.swap_without_a_temporary__in_place__.synopsis" title="Synopsis">Synopsis</a>
</h4></div></div></div>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
-<span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">T</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">y</span><span class="special">);</span>
+<span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">swap_in_place</span><span class="special">(</span><span class="identifier">T</span><span class="special">&</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">y</span><span class="special">);</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -1781,11 +1784,11 @@
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="identifier">T</span> <span class="identifier">isign</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">y</span><span class="special">);</span>
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">static_isign</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
-
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IC2</span><span class="special">></span>
-<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">isign</span> <span class="special">{</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">typename</span> <span class="identifier">IC1</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">value</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">isign</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">IC1</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">,</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">></span> <span class="special">{};</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value2</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">static_isign</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">isign</span><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value1</span><span class="special">>,</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">integral_c</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Value2</span><span class="special">></span> <span class="special">></span> <span class="special">{};</span>
</pre>
</div>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
Modified: sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/history.html
==============================================================================
--- sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/history.html (original)
+++ sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/boost_integer/history.html 2010-07-14 15:50:31 EDT (Wed, 14 Jul 2010)
@@ -26,7 +26,7 @@
<a name="boost_integer.history"></a><a class="link" href="history.html" title="History"> History</a>
</h2></div></div></div>
<a name="boost_integer.history.1_42_0"></a><h5>
-<a name="id36202315"></a>
+<a name="id36202477"></a>
<a class="link" href="history.html#boost_integer.history.1_42_0">1.42.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -55,7 +55,7 @@
</li>
</ul></div>
<a name="boost_integer.history.1_32_0"></a><h5>
-<a name="id36202435"></a>
+<a name="id36202597"></a>
<a class="link" href="history.html#boost_integer.history.1_32_0">1.32.0</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
Modified: sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/index.html
==============================================================================
--- sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/index.html (original)
+++ sandbox/SOC/2010/bits_and_ints/libs/integer/doc/html/index.html 2010-07-14 15:50:31 EDT (Wed, 14 Jul 2010)
@@ -255,7 +255,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 14, 2010 at 19:01:54 GMT</small></p></td>
+<td align="left"><p><small>Last revised: July 14, 2010 at 19:47:00 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk