$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r57926 - in trunk: boost boost/integer libs/integer libs/integer/doc libs/integer/doc/html libs/integer/doc/html/boost_integer
From: john_at_[hidden]
Date: 2009-11-25 07:38:11
Author: johnmaddock
Date: 2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
New Revision: 57926
URL: http://svn.boost.org/trac/boost/changeset/57926
Log:
Update Boost.Integer meta-programming classes to work with intmax_t where possible - ie to be 64-bit clean.
Added quickbook based docs - updated as necessary.
Removed old html docs.
Added:
   trunk/libs/integer/doc/Jamfile.v2   (contents, props changed)
   trunk/libs/integer/doc/html/
   trunk/libs/integer/doc/html/boost_integer/
   trunk/libs/integer/doc/html/boost_integer/cstdint.html   (contents, props changed)
   trunk/libs/integer/doc/html/boost_integer/history.html   (contents, props changed)
   trunk/libs/integer/doc/html/boost_integer/integer.html   (contents, props changed)
   trunk/libs/integer/doc/html/boost_integer/log2.html   (contents, props changed)
   trunk/libs/integer/doc/html/boost_integer/mask.html   (contents, props changed)
   trunk/libs/integer/doc/html/boost_integer/minmax.html   (contents, props changed)
   trunk/libs/integer/doc/html/boost_integer/traits.html   (contents, props changed)
   trunk/libs/integer/doc/html/index.html   (contents, props changed)
   trunk/libs/integer/doc/integer.qbk   (contents, props changed)
Removed:
   trunk/libs/integer/cstdint.htm
   trunk/libs/integer/doc/integer_mask.html
   trunk/libs/integer/doc/static_log2.html
   trunk/libs/integer/doc/static_min_max.html
   trunk/libs/integer/integer.htm
   trunk/libs/integer/integer_traits.html
Text files modified: 
   trunk/boost/integer.hpp                |     2                                         
   trunk/boost/integer/static_log2.hpp    |    11 --                                      
   trunk/boost/integer/static_min_max.hpp |    20 ++---                                   
   trunk/boost/integer_fwd.hpp            |    26 ++++--                                  
   trunk/libs/integer/index.html          |   150 ++------------------------------------- 
   5 files changed, 39 insertions(+), 170 deletions(-)
Modified: trunk/boost/integer.hpp
==============================================================================
--- trunk/boost/integer.hpp	(original)
+++ trunk/boost/integer.hpp	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -17,7 +17,7 @@
 
 #include <boost/integer_fwd.hpp>  // self include
 
-#include <boost/integer_traits.hpp>  // for ::boost::integer_traits
+#include <boost/integer_traits.hpp>  // for boost::::boost::integer_traits
 #include <boost/limits.hpp>          // for ::std::numeric_limits
 #include <boost/cstdint.hpp>         // for boost::int64_t and BOOST_NO_INTEGRAL_INT64_T
 
Modified: trunk/boost/integer/static_log2.hpp
==============================================================================
--- trunk/boost/integer/static_log2.hpp	(original)
+++ trunk/boost/integer/static_log2.hpp	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -16,7 +16,7 @@
 #ifndef BOOST_INTEGER_STATIC_LOG2_HPP
 #define BOOST_INTEGER_STATIC_LOG2_HPP
 
-#include "boost/config.hpp" // for BOOST_STATIC_CONSTANT
+#include "boost/integer_fwd.hpp" // for boost::intmax_t
 
 namespace boost {
 
@@ -41,9 +41,8 @@
      // terminates with x = 1 and n = 0 (see the algorithm's
      // invariant).
 
-     typedef unsigned long argument_type;
-     typedef          int  result_type;
-
+     typedef boost::static_log2_argument_type argument_type;
+     typedef boost::static_log2_result_type result_type;
 
      template <result_type n>
      struct choose_initial_n {
@@ -107,10 +106,6 @@
  // static_log2<x>
  // ----------------------------------------
 
- typedef detail::static_log2_impl::argument_type static_log2_argument_type;
- typedef detail::static_log2_impl::result_type   static_log2_result_type;
-
-
  template <static_log2_argument_type x>
  struct static_log2 {
 
Modified: trunk/boost/integer/static_min_max.hpp
==============================================================================
--- trunk/boost/integer/static_min_max.hpp	(original)
+++ trunk/boost/integer/static_min_max.hpp	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -12,39 +12,35 @@
 
 #include <boost/integer_fwd.hpp>  // self include
 
-#include <boost/config.hpp>  // for BOOST_STATIC_CONSTANT
-
-
 namespace boost
 {
 
-
 //  Compile-time extrema class declarations  ---------------------------------//
 //  Get the minimum or maximum of two values, signed or unsigned.
 
-template < long Value1, long Value2 >
+template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
 struct static_signed_min
 {
-    BOOST_STATIC_CONSTANT( long, value = (Value1 > Value2) ? Value2 : Value1 );
+    BOOST_STATIC_CONSTANT(static_min_max_signed_type, value = (Value1 > Value2) ? Value2 : Value1 );
 };
 
-template < long Value1, long Value2 >
+template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
 struct static_signed_max
 {
-    BOOST_STATIC_CONSTANT( long, value = (Value1 < Value2) ? Value2 : Value1 );
+    BOOST_STATIC_CONSTANT(static_min_max_signed_type, value = (Value1 < Value2) ? Value2 : Value1 );
 };
 
-template < unsigned long Value1, unsigned long Value2 >
+template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
 struct static_unsigned_min
 {
-    BOOST_STATIC_CONSTANT( unsigned long, value
+    BOOST_STATIC_CONSTANT(static_min_max_unsigned_type, value
      = (Value1 > Value2) ? Value2 : Value1 );
 };
 
-template < unsigned long Value1, unsigned long Value2 >
+template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
 struct static_unsigned_max
 {
-    BOOST_STATIC_CONSTANT( unsigned long, value
+    BOOST_STATIC_CONSTANT(static_min_max_unsigned_type, value
      = (Value1 < Value2) ? Value2 : Value1 );
 };
 
Modified: trunk/boost/integer_fwd.hpp
==============================================================================
--- trunk/boost/integer_fwd.hpp	(original)
+++ trunk/boost/integer_fwd.hpp	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -14,11 +14,23 @@
 
 #include <boost/config.hpp>  // for BOOST_NO_INTRINSIC_WCHAR_T
 #include <boost/limits.hpp>  // for std::numeric_limits
+#include <boost/cstdint.hpp>  // For intmax_t
 
 
 namespace boost
 {
 
+#ifdef BOOST_NO_INTEGRAL_INT64_T
+     typedef unsigned long static_log2_argument_type;
+     typedef          int  static_log2_result_type;
+     typedef long          static_min_max_signed_type;
+     typedef unsigned long static_min_max_unsigned_type;
+#else
+     typedef boost::uintmax_t static_min_max_unsigned_type;
+     typedef boost::intmax_t  static_min_max_signed_type;
+     typedef boost::uintmax_t static_log2_argument_type;
+     typedef int              static_log2_result_type;
+#endif
 
 //  From <boost/cstdint.hpp>  ------------------------------------------------//
 
@@ -136,28 +148,26 @@
 
 //  From <boost/integer/static_log2.hpp>  ------------------------------------//
 
-template < unsigned long Value >
+template <static_log2_argument_type Value >
     struct static_log2;
 
-template <  >
-    struct static_log2< 0ul >;
+template <> struct static_log2<0u>;
 
 
 //  From <boost/integer/static_min_max.hpp>  ---------------------------------//
 
-template < long Value1, long Value2 >
+template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
     struct static_signed_min;
 
-template < long Value1, long Value2 >
+template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
     struct static_signed_max;
 
-template < unsigned long Value1, unsigned long Value2 >
+template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
     struct static_unsigned_min;
 
-template < unsigned long Value1, unsigned long Value2 >
+template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
     struct static_unsigned_max;
 
-
 }  // namespace boost
 
 
Deleted: trunk/libs/integer/cstdint.htm
==============================================================================
--- trunk/libs/integer/cstdint.htm	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
+++ (empty file)
@@ -1,81 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<title>Header boost/cstdint.hpp</title>
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-
-<h1><img src="../../boost.png" alt="boost.png (6897 bytes)" align="center" width="277" height="86">Header
-boost/cstdint.hpp </h1>
-<p>The header <code><boost/cstdint.hpp></code>
-provides the typedef's useful for
-writing portable code that requires certain integer widths.  All typedef's are in namespace boost.</p>
-<p>The specifications are based on the ISO/IEC 9899:1999 C Language standard
-header <stdint.h>.  The 64-bit types required by the C standard are not
-required in the boost header, and may not be supplied in all implementations,
-because <code>long long</code> is not [yet] included in the C++ standard.</p>
-<p>See cstdint_test.cpp for a test program.</p>
-<h2>Exact-width integer types</h2>
-<p>The typedef <code>int#_t</code>, with # replaced by the width, designates a
-signed integer type of exactly # bits; <code>int8_t</code> denotes an 8-bit
-signed integer type.  Similarly, the typedef <code>uint#_t</code>
-designates and unsigned integer type of exactly # bits.</p>
-<p>These types are optional. However, if an implementation provides integer
-types with widths of 8, 16, 32, or 64 bits, it shall define the corresponding
-typedef names.</p>
-<h2>Minimum-width integer types</h2>
-<p>The typedef <code>int_least#_t</code>, with # replaced by the width, 
-designates a signed integer type with a width of at least # bits, such that no
-signed integer type with lesser size has at least the specified width. Thus, <code>int_least32_t</code>
-denotes a signed integer type with a width of at least 32 bits. Similarly, the
-typedef name <code>uint_least#_t</code> designates an unsigned integer type with
-a width of at least # bits, such that no unsigned integer type with lesser size
-has at least the specified width.</p>
-<p>Required minimum-width integer types:</p>
-<ul>
-  <li><code>int_least8_t</code></li>
-  <li><code>int_least16_t</code></li>
-  <li><code>int_least32_t</code></li>
-  <li><code>uint_least8_t</code></li>
-  <li><code>uint_least16_t</code></li>
-  <li><code>uint_least32_t</code></li>
-</ul>
-<p>All other minimum-width integer types are optional.</p>
-<h2>Fastest minimum-width integer types</h2>
-<p>The typedef <code>int_fast#_t</code>, with # replaced by the width,
-designates the fastest signed integer type with a width of at least # bits.
-Similarly, the typedef name <code>uint_fast#_t</code> designates the fastest
-unsigned integer type with a width of at least # bits.</p>
-<p>There is no guarantee that these types are fastest for all purposes.  In
-any case, however, they satisfy  the signedness and width requirements.</p>
-<p>Required fastest minimum-width integer types:</p>
-<ul>
-  <li><code>int_fast8_t</code></li>
-  <li><code>int_fast16_t</code></li>
-  <li><code>int_fast32_t</code></li>
-  <li><code>uint_fast8_t</code></li>
-  <li><code>uint_fast16_t</code></li>
-  <li><code>uint_fast32_t</code></li>
-</ul>
-<p>All other fastest minimum-width integer types are optional.</p>
-<h2>Greatest-width integer types</h2>
-<p>The typedef <code>intmax_t </code>designates a signed integer type capable of
-representing any value of any signed integer type.</p>
-<p>The typedef <code>uintmax_t</code> designates an unsigned integer type
-capable of representing any value of any unsigned integer type.</p>
-<p>These types are required.</p>
-<hr>
-<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->06 Nov 2007<!--webbot bot="Timestamp" endspan i-checksum="15272" -->
-</p>
-<p>© Copyright Beman Dawes 2000</p>
-
-<p>Distributed under the Boost Software License, Version 1.0. See
-www.boost.org/LICENSE_1_0.txt</p>
-
-</body>
-
-</html>
\ No newline at end of file
Added: trunk/libs/integer/doc/Jamfile.v2
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/Jamfile.v2	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,59 @@
+
+
+# Copyright John Maddock 2005. Use, modification, and distribution are
+# subject to the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+using quickbook ;
+
+xml integer : integer.qbk ;
+boostbook standalone
+    :
+        integer
+    :
+        # HTML options first:
+        # Use graphics not text for navigation:
+        <xsl:param>navig.graphics=1
+        # How far down we chunk nested sections, basically all of them:
+        <xsl:param>chunk.section.depth=1
+        # Don't put the first section on the same page as the TOC:
+        <xsl:param>chunk.first.sections=0
+        # How far down sections get TOC's
+        <xsl:param>toc.section.depth=1
+        # Max depth in each TOC:
+        <xsl:param>toc.max.depth=1
+        # How far down we go with TOC's
+        <xsl:param>generate.section.toc.level=4
+        # Path for links to Boost:
+        <xsl:param>boost.root=../../../..
+        # Path for libraries index:
+        <xsl:param>boost.libraries=../../../../libs/libraries.htm
+        # Use the main Boost stylesheet:
+        <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
+        
+        # PDF Options:
+        # TOC Generation: this is needed for FOP-0.9 and later:
+        <xsl:param>fop1.extensions=0
+        # Or enable this if you're using XEP:
+        <xsl:param>xep.extensions=1
+        # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
+        <xsl:param>fop.extensions=0
+        # No indent on body text:
+        <xsl:param>body.start.indent=0pt
+        # Margin size:
+        <xsl:param>page.margin.inner=0.5in
+        # Margin size:
+        <xsl:param>page.margin.outer=0.5in
+        # Yes, we want graphics for admonishments:
+        <xsl:param>admon.graphics=1
+        # Set this one for PDF generation *only*:
+        # default pnd graphics are awful in PDF form,
+        # better use SVG's instead:
+        <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+        <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
+        <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/regex/doc/html
+    ;
+
+install pdf-install : standalone : <location>. <install-type>PDF ;
+
+
Added: trunk/libs/integer/doc/html/boost_integer/cstdint.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/cstdint.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,235 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Standard Integer Types</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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="next" href="traits.html" title="Integer Traits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section"> Rationale</span></dt>
+<dt><span class="section"> Caveat emptor</span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_integer.cstdint.exact_width_integer_types">Exact-width
+      integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_integer.cstdint.minimum_width_integer_types">Minimum-width
+      integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_integer.cstdint.fastest_minimum_width_integer_types">Fastest
+      minimum-width integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_integer.cstdint.greatest_width_integer_types">Greatest-width
+      integer types</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The header <code class="literal"><boost/cstdint.hpp></code>
+        provides the typedef's useful for writing portable code that requires certain
+        integer widths. All typedef's are in namespace boost.
+      </p>
+<p>
+        The specifications are based on the ISO/IEC 9899:1999 C Language standard
+        header <stdint.h>. The 64-bit types required by the C standard are
+        not required in the boost header, and may not be supplied in all implementations,
+        because <code class="literal">long long</code> is not [yet] included in the C++ standard.
+      </p>
+<p>
+        See cstdint_test.cpp for
+        a test program.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The organization of the Boost.Integer headers and classes is designed to
+        take advantage of <stdint.h> types from the 1999 C standard without
+        resorting to undefined behavior in terms of the 1998 C++ standard. The header
+        <boost/cstdint.hpp> makes the standard integer types safely available
+        in namespace <code class="literal">boost</code> without placing any names in namespace
+        <code class="literal">std</code>. As always, the intension is to complement rather
+        than compete with the C++ Standard Library. Should some future C++ standard
+        include <stdint.h> and <cstdint>, then <boost/cstdint.hpp>
+        will continue to function, but will become redundant and may be safely deprecated.
+      </p>
+<p>
+        Because these are boost headers, their names conform to boost header naming
+        conventions rather than C++ Standard Library header naming conventions.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        As an implementation artifact, certain C <limits.h> macro names may
+        possibly be visible to users of <boost/cstdint.hpp>. Don't use these
+        macros; they are not part of any Boost-specified interface. Use <code class="literal">boost::integer_traits<></code>
+        or <code class="literal">std::numeric_limits<></code> instead.
+      </p>
+<p>
+        As another implementation artifact, certain C <stdint.h> typedef names
+        may possibly be visible in the global namespace to users of <boost/cstdint.hpp>.
+        Don't use these names, they are not part of any Boost-specified interface.
+        Use the respective names in namespace <code class="literal">boost</code> instead.
+      </p>
+</div>
+<div class="section" lang="en">
+<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
+      integer types</a>
+</h3></div></div></div>
+<p>
+        The typedef <code class="literal">int#_t</code>, with # replaced by the width, designates
+        a signed integer type of exactly # bits; for example <code class="literal">int8_t</code>
+        denotes an 8-bit signed integer type. Similarly, the typedef <code class="literal">uint#_t</code>
+        designates an unsigned integer type of exactly # bits.
+      </p>
+<p>
+        These types are optional. However, if an implementation provides integer
+        types with widths of 8, 16, 32, or 64 bits, it shall define the corresponding
+        typedef names.
+      </p>
+<p>
+        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>
+</div>
+<div class="section" lang="en">
+<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
+      integer types</a>
+</h3></div></div></div>
+<p>
+        The typedef <code class="literal">int_least#_t</code>, with # replaced by the width,
+        designates a signed integer type with a width of at least # bits, such that
+        no signed integer type with lesser size has at least the specified width.
+        Thus, <code class="literal">int_least32_t</code> denotes a signed integer type with
+        a width of at least 32 bits. Similarly, the typedef name <code class="literal">uint_least#_t</code>
+        designates an unsigned integer type with a width of at least # bits, such
+        that no unsigned integer type with lesser size has at least the specified
+        width.
+      </p>
+<p>
+        Required minimum-width integer types:
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="literal">int_least8_t</code></li>
+<li><code class="literal">int_least16_t</code></li>
+<li><code class="literal">int_least32_t</code></li>
+<li><code class="literal">uint_least8_t</code></li>
+<li><code class="literal">uint_least16_t</code></li>
+<li><code class="literal">uint_least32_t</code></li>
+</ul></div>
+<p>
+        The types:
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="literal">int_least64_t</code></li>
+<li><code class="literal">uint_least64_t</code></li>
+</ul></div>
+<p>
+        Are available only if, after inclusion of <code class="literal"><boost/cstdint.hpp></code>
+        the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>
+        is <span class="emphasis"><em><span class="bold"><strong>not defined</strong></span></em></span>.
+      </p>
+<p>
+        All other minimum-width integer types are optional.
+      </p>
+</div>
+<div class="section" lang="en">
+<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
+      minimum-width integer types</a>
+</h3></div></div></div>
+<p>
+        The typedef <code class="literal">int_fast#_t</code>, with # replaced by the width,
+        designates the fastest signed integer type with a width of at least # bits.
+        Similarly, the typedef name <code class="literal">uint_fast#_t</code> designates the
+        fastest unsigned integer type with a width of at least # bits.
+      </p>
+<p>
+        There is no guarantee that these types are fastest for all purposes. In any
+        case, however, they satisfy the signedness and width requirements.
+      </p>
+<p>
+        Required fastest minimum-width integer types:
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="literal">int_fast8_t</code></li>
+<li><code class="literal">int_fast16_t</code></li>
+<li><code class="literal">int_fast32_t</code></li>
+<li><code class="literal">uint_fast8_t</code></li>
+<li><code class="literal">uint_fast16_t</code></li>
+<li><code class="literal">uint_fast32_t</code></li>
+</ul></div>
+<p>
+        The types:
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li><code class="literal">int_fast64_t</code></li>
+<li><code class="literal">uint_fast64_t</code></li>
+</ul></div>
+<p>
+        Are available only if, after inclusion of <code class="literal"><boost/cstdint.hpp></code>
+        the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>
+        is <span class="emphasis"><em><span class="bold"><strong>not defined</strong></span></em></span>.
+      </p>
+<p>
+        All other fastest minimum-width integer types are optional.
+      </p>
+</div>
+<div class="section" lang="en">
+<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
+      integer types</a>
+</h3></div></div></div>
+<p>
+        The typedef <code class="literal">intmax_t </code>designates a signed integer type
+        capable of representing any value of any signed integer type.
+      </p>
+<p>
+        The typedef <code class="literal">uintmax_t</code> designates an unsigned integer type
+        capable of representing any value of any unsigned integer type.
+      </p>
+<p>
+        These types are required.
+      </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/boost_integer/history.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/history.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>History</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<a name="boost_integer.history.1_42_0"></a><h5>
+<a name="id677364"></a>
+      <a class="link" href="history.html#boost_integer.history.1_42_0">1.42.0</a>
+    </h5>
+<div class="itemizedlist"><ul type="disc">
+<li>
+        Reverted Trunk to release branch state (i.e. a "known good state").
+      </li>
+<li>
+        Fixed issues: 653,
+        3084,
+        3177,
+        3180,
+        3568,
+        3657,
+        2134.
+      </li>
+<li>
+        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>,
+        when available.
+      </li>
+<li>
+        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
+        long</code> and <code class="literal">int</code> respectively. Please, use the provided
+        typedefs in new code (and update old code as soon as possible).
+      </li>
+</ul></div>
+<a name="boost_integer.history.1_32_0"></a><h5>
+<a name="id677466"></a>
+      <a class="link" href="history.html#boost_integer.history.1_32_0">1.32.0</a>
+    </h5>
+<div class="itemizedlist"><ul type="disc"><li>
+        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>
+        and <code class="literal">int</code> respectively. Please, use the provided typedefs
+        in new code (and update old code as soon as possible).
+      </li></ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/boost_integer/integer.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/integer.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,323 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Integer Type Selection</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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="next" href="mask.html" title="Integer Masks">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"> Synopsis</span></dt>
+<dt><span class="section"><a href="integer.html#boost_integer.integer.easiest"> Easiest-to-Manipulate
+      Types</a></span></dt>
+<dt><span class="section"> Sized Types</span></dt>
+<dt><span class="section">Example</span></dt>
+<dt><span class="section"><a href="integer.html#boost_integer.integer.demonstration_program">Demonstration
+      Program</a></span></dt>
+<dt><span class="section">Rationale</span></dt>
+<dt><span class="section">Alternative</span></dt>
+<dt><span class="section">Credits</span></dt>
+</dl></div>
+<p>
+      The <boost/integer.hpp>
+      type selection templates allow integer types to be selected based on desired
+      characteristics such as number of bits or maximum value. This facility is particularly
+      useful for solving generic programming problems.
+    </p>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+  <span class="comment">//  fast integers from least integers
+</span>  <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">LeastInt</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">int_fast_t</span>
+  <span class="special">{</span>
+      <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">fast</span><span class="special">;</span>
+  <span class="special">};</span>
+
+  <span class="comment">//  signed
+</span>  <span class="keyword">template</span><span class="special"><</span><span class="keyword">int</span> <span class="identifier">Bits</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">int_t</span> 
+  <span class="special">{</span>
+      <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+      <span class="keyword">typedef</span> <span class="identifier">int_fast_t</span><span class="special"><</span><span class="identifier">least</span><span class="special">>::</span><span class="identifier">fast</span>      <span class="identifier">fast</span><span class="special">;</span>
+  <span class="special">};</span>
+
+  <span class="comment">//  unsigned
+</span>  <span class="keyword">template</span><span class="special"><</span><span class="keyword">int</span> <span class="identifier">Bits</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">uint_t</span> 
+  <span class="special">{</span>
+      <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+      <span class="keyword">typedef</span> <span class="identifier">int_fast_t</span><span class="special"><</span><span class="identifier">least</span><span class="special">>::</span><span class="identifier">fast</span>      <span class="identifier">fast</span><span class="special">;</span>
+  <span class="special">};</span>
+
+  <span class="comment">//  signed
+</span>  <span class="keyword">template</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">MaxValue</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">int_max_value_t</span> 
+  <span class="special">{</span>
+      <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+      <span class="keyword">typedef</span> <span class="identifier">int_fast_t</span><span class="special"><</span><span class="identifier">least</span><span class="special">>::</span><span class="identifier">fast</span>      <span class="identifier">fast</span><span class="special">;</span>
+  <span class="special">};</span>
+
+  <span class="keyword">template</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">MinValue</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">int_min_value_t</span> 
+  <span class="special">{</span>
+      <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+      <span class="keyword">typedef</span> <span class="identifier">int_fast_t</span><span class="special"><</span><span class="identifier">least</span><span class="special">>::</span><span class="identifier">fast</span>      <span class="identifier">fast</span><span class="special">;</span>
+  <span class="special">};</span>
+
+  <span class="comment">//  unsigned
+</span>  <span class="keyword">template</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">long</span> <span class="identifier">Value</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">uint_value_t</span> 
+  <span class="special">{</span>
+      <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+      <span class="keyword">typedef</span> <span class="identifier">int_fast_t</span><span class="special"><</span><span class="identifier">least</span><span class="special">>::</span><span class="identifier">fast</span>      <span class="identifier">fast</span><span class="special">;</span>
+  <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace boost
+</span></pre>
+</div>
+<div class="section" lang="en">
+<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
+      Types</a>
+</h3></div></div></div>
+<p>
+        The <code class="literal">int_fast_t</code> class template maps its input type to the
+        next-largest type that the processor can manipulate the easiest, or to itself
+        if the input type is already an easy-to-manipulate type. For instance, processing
+        a bunch of <code class="literal">char</code> objects may go faster if they were converted
+        to <code class="literal">int</code> objects before processing. The input type, passed
+        as the only template parameter, must be a built-in integral type, except
+        <code class="literal">bool</code>. Unsigned integral types can be used, as well as
+        signed integral types, despite the name. The output type is given as the
+        class member <code class="literal">fast</code>.
+      </p>
+<p>
+        <span class="bold"><strong>Implementation Notes:</strong></span> By default, the output
+        type is identical to the input type. Eventually, this code's implementation
+        should be conditionalized for each platform to give accurate mappings between
+        the built-in types and the easiest-to-manipulate built-in types. Also, there
+        is no guarantee that the output type actually is easier to manipulate than
+        the input type.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The <code class="literal">int_t</code>, <code class="literal">uint_t</code>, <code class="literal">int_max_value_t</code>,
+        <code class="literal">int_min_value_t</code>, and <code class="literal">uint_value_t</code> class
+        templates find the most appropiate built-in integral type for the given template
+        parameter. This type is given by the class member <code class="literal">least</code>.
+        The easiest-to-manipulate version of that type is given by the class member
+        <code class="literal">fast</code>. The following table describes each template's criteria.
+      </p>
+<div class="table">
+<a name="id673121"></a><p class="title"><b>Table 1. Criteria for the Sized Type Class Templates</b></p>
+<div class="table-contents"><table class="table" summary="Criteria for the Sized Type Class Templates">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+            <p>
+              Class Template
+            </p>
+            </th>
+<th>
+            <p>
+              Template Parameter Mapping
+            </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+            <p>
+              <code class="literal">boost::int_t<N></code>
+            </p>
+            </td>
+<td>
+            <p>
+              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.
+              A compile-time error results if the parameter is larger than the number
+              of bits in the largest integer type.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">boost::uint_t<N></code>
+            </p>
+            </td>
+<td>
+            <p>
+              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
+              results if the parameter is larger than the number of bits in the largest
+              integer type.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">boost::int_max_value_t<V></code>
+            </p>
+            </td>
+<td>
+            <p>
+              The smallest built-in signed integral type that can hold all the values
+              in the inclusive range <span class="emphasis"><em>0 - V</em></span>. The parameter should
+              be a positive number.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">boost::int_min_value_t<V></code>
+            </p>
+            </td>
+<td>
+            <p>
+              The smallest built-in signed integral type that can hold all the values
+              in the inclusive range <span class="emphasis"><em>V-0</em></span>. The parameter should
+              be a negative number.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">boost::uint_value_t<V></code>
+            </p>
+            </td>
+<td>
+            <p>
+              The smallest built-in unsigned integral type that can hold all positive
+              values up to and including <span class="emphasis"><em>V</em></span>. The parameter should
+              be a positive number.
+            </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">integer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">//...
+</span>
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_t</span><span class="special"><</span><span class="number">24</span><span class="special">>::</span><span class="identifier">least</span> <span class="identifier">my_var</span><span class="special">;</span>  <span class="comment">// my_var has at least 24-bits
+</span>    <span class="comment">//...
+</span>    <span class="comment">// This one is guarenteed not to be truncated:
+</span>    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_max_value_t</span><span class="special"><</span><span class="number">1000</span><span class="special">>::</span><span class="identifier">least</span> <span class="identifier">my1000</span> <span class="special">=</span> <span class="number">1000</span><span class="special">;</span>
+    <span class="comment">//...
+</span>    <span class="comment">// This one is guarenteed not to be truncated, and as fast
+</span>    <span class="comment">// to manipulate as possible, it's size may be greater than
+</span>    <span class="comment">// that of my1000:
+</span>    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">int_max_value_t</span><span class="special"><</span><span class="number">1000</span><span class="special">>::</span><span class="identifier">fast</span> <span class="identifier">my_fast1000</span> <span class="special">=</span> <span class="number">1000</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<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
+      Program</a>
+</h3></div></div></div>
+<p>
+        The program integer_test.cpp
+        is a simplistic demonstration of the results from instantiating various examples
+        of the sized type class templates.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The rationale for the design of the templates in this header includes:
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+          Avoid recursion because of concern about C++'s limited guaranteed recursion
+          depth (17).
+        </li>
+<li>
+          Avoid macros on general principles.
+        </li>
+<li>
+          Try to keep the design as simple as possible.
+        </li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        If the number of bits required is known beforehand, it may be more appropriate
+        to use the types supplied in <boost/cstdint.hpp>.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The author of most of the Boost integer type choosing templates is Beman Dawes. He
+        gives thanks to Valentin Bonnard and <a href="http://www.boost.org/people/kevlin_henney.htm" target="_top">Kevlin
+        Henney</a> for sharing their designs for similar templates. <a href="http://www.boost.org/people/daryle_walker.html" target="_top">Daryle
+        Walker</a> designed the value-based sized templates.
+      </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/boost_integer/log2.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/log2.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,184 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Compile time log2 Calculation</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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="next" href="minmax.html" title="Compile time min/max calculation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section">Usage</span></dt>
+<dt><span class="section">Example</span></dt>
+<dt><span class="section"><a href="log2.html#boost_integer.log2.demonstration_program">Demonstration
+      Program</a></span></dt>
+<dt><span class="section">Rationale</span></dt>
+<dt><span class="section">Credits</span></dt>
+</dl></div>
+<p>
+      The class template in <boost/integer/static_log2.hpp>
+      determines the position of the highest bit in a given value. This facility
+      is useful for solving generic programming problems.
+    </p>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+  <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined</em></span> <span class="identifier">static_log2_argument_type</span><span class="special">;</span>
+  <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined</em></span> <span class="identifier">static_log2_result_type</span><span class="special">;</span>
+
+  <span class="keyword">template</span> <span class="special"><</span><span class="identifier">static_log2_argument_type</span> <span class="identifier">arg</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">static_log2</span>
+  <span class="special">{</span>
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">static_log2_result_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">template</span> <span class="special"><</span> <span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">static_log2</span><span class="special"><</span> <span class="number">0</span> <span class="special">></span>
+  <span class="special">{</span>
+    <span class="comment">// The logarithm of zero is undefined.
+</span>  <span class="special">};</span>
+
+
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The <code class="literal">boost::static_log2</code> class template takes one template
+        parameter, a value of type <code class="literal">static_log2_argument_type</code>.
+        The template only defines one member, <code class="literal">value</code>, which gives
+        the truncated base-two logarithm of the template argument.
+      </p>
+<p>
+        Since the logarithm of zero, for any base, is undefined, there is a specialization
+        of <code class="literal">static_log2</code> for a template argument of zero. This specialization
+        has no members, so an attempt to use the base-two logarithm of zero results
+        in a compile-time error.
+      </p>
+<p>
+        Note:
+      </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<code class="literal">static_log2_argument_type</code> is an <span class="emphasis"><em>unsigned integer
+          type</em></span> (C++ standard, 3.9.1p3).
+        </li>
+<li>
+<code class="literal">static_log2_result_type</code> is an <span class="emphasis"><em>integer type</em></span>
+          (C++ standard, 3.9.1p7).
+        </li>
+</ul></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_integer.log2.example"></a><a class="link" href="log2.html#boost_integer.log2.example" title="Example">Example</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="string">"boost/integer/static_log2.hpp"</span>
+
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_log2_argument_type</span> <span class="identifier">value</span> <span class="special">></span>
+<span class="keyword">bool</span> <span class="identifier">is_it_what</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_log2</span><span class="special"><</span><span class="identifier">value</span><span class="special">></span>  <span class="identifier">lb_type</span><span class="special">;</span>
+
+    <span class="keyword">int</span>  <span class="identifier">temp</span> <span class="special">=</span> <span class="identifier">lb_type</span><span class="special">::</span><span class="identifier">value</span><span class="special">;</span>
+    <span class="comment">//...
+</span>    <span class="keyword">return</span> <span class="special">(</span><span class="identifier">temp</span> <span class="special">%</span> <span class="number">2</span><span class="special">)</span> <span class="special">!=</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="comment">//...
+</span>
+<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">temp</span> <span class="special">=</span> <span class="identifier">is_it_what</span><span class="special"><</span><span class="number">2000</span><span class="special">>();</span>
+    <span class="comment">//...
+</span><span class="preprocessor"># if</span> <span class="number">0</span>
+    <span class="identifier">temp</span> <span class="special">=</span> <span class="identifier">is_it_what</span><span class="special"><</span><span class="number">0</span><span class="special">>();</span>  <span class="comment">// would give an error
+</span><span class="preprocessor"># endif</span>
+    <span class="comment">//...
+</span>    <span class="identifier">temp</span> <span class="special">=</span> <span class="identifier">is_it_what</span><span class="special"><</span><span class="number">24</span><span class="special">>();</span>
+    <span class="comment">//...
+</span><span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<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
+      Program</a>
+</h3></div></div></div>
+<p>
+        The program static_log2_test.cpp
+        is a simplistic demonstration of the results from instantiating various examples
+        of the binary logarithm class template.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The base-two (binary) logarithm, abbreviated lb, function is occasionally
+        used to give order-estimates of computer algorithms. The truncated logarithm
+        can be considered the highest power-of-two in a value, which corresponds
+        to the value's highest set bit (for binary integers). Sometimes the highest-bit
+        position could be used in generic programming, which requires the position
+        to be statically (<span class="emphasis"><em>i.e.</em></span> at compile-time) available.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The original version of the Boost binary logarithm class template was written
+        by Daryle Walker
+        and then enhanced by Giovanni Bajo with support for compilers without partial
+        template specialization. The current version was suggested, together with
+        a reference implementation, by Vesa Karvonen. Gennaro Prota wrote the actual
+        source file.
+      </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/boost_integer/mask.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/mask.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,376 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Integer Masks</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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="next" href="log2.html" title="Compile time log2 Calculation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section"><a href="mask.html#boost_integer.mask.single_bit_mask_class_template">Single
+      Bit-Mask Class Template</a></span></dt>
+<dt><span class="section"><a href="mask.html#boost_integer.mask.group_bit_mask_class_template">Group
+      Bit-Mask Class Template</a></span></dt>
+<dt><span class="section"><a href="mask.html#boost_integer.mask.implementation_notes">Implementation
+      Notes</a></span></dt>
+<dt><span class="section">Example</span></dt>
+<dt><span class="section"><a href="mask.html#boost_integer.mask.demonstration_program">Demonstration
+      Program</a></span></dt>
+<dt><span class="section">Rationale</span></dt>
+<dt><span class="section">Credits</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The class templates in <boost/integer/integer_mask.hpp>
+        provide bit masks for a certain bit position or a contiguous-bit pack of
+        a certain size. The types of the masking constants come from the <a class="link" href="integer.html" title="Integer Type Selection">integer
+        type selection templates</a> header.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">cstddef</span><span class="special">></span>  <span class="comment">// for std::size_t
+</span>
+<span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bit</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">high_bit_mask_t</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">fast</span><span class="special">;</span>
+
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">least</span>       <span class="identifier">high_bit</span>       <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">fast</span>        <span class="identifier">high_bit_fast</span>  <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
+
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bit_position</span>   <span class="special">=</span> <span class="identifier">Bit</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">template</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">low_bits_mask_t</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">least</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined-type</em></span>  <span class="identifier">fast</span><span class="special">;</span>
+
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">least</span>       <span class="identifier">sig_bits</span>       <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">fast</span>        <span class="identifier">sig_bits_fast</span>  <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
+
+    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bit_count</span>      <span class="special">=</span> <span class="identifier">Bits</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="comment">// Specializations for low_bits_mask_t exist for certain bit counts.
+</span>
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+</div>
+<div class="section" lang="en">
+<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
+      Bit-Mask Class Template</a>
+</h3></div></div></div>
+<p>
+        The <code class="literal">boost::high_bit_mask_t</code> class template provides constants
+        for bit masks representing the bit at a certain position. The masks are equivalent
+        to the value 2<sup>Bit</sup>, where <code class="literal">Bit</code> is the template parameter.
+        The bit position must be a nonnegative number from zero to <span class="emphasis"><em>Max</em></span>,
+        where Max is one less than the number of bits supported by the largest unsigned
+        built-in integral type. The following table describes the members of an instantiation
+        of <code class="literal">high_bit_mask_t</code>.
+      </p>
+<div class="table">
+<a name="id674116"></a><p class="title"><b>Table 2. 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">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+            <p>
+              Member
+            </p>
+            </th>
+<th>
+            <p>
+              Meaning
+            </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+            <p>
+              <code class="literal">least</code>
+            </p>
+            </td>
+<td>
+            <p>
+              The smallest unsigned built-in type that supports the given bit position.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">fast</code>
+            </p>
+            </td>
+<td>
+            <p>
+              The quick-to-manipulate analog of <code class="literal">least</code>.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">high_bit</code>
+            </p>
+            </td>
+<td>
+            <p>
+              A <code class="literal">least</code> constant of the desired bit-masking value.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">high_bit_fast</code>
+            </p>
+            </td>
+<td>
+            <p>
+              A <code class="literal">fast</code> analog of <code class="literal">high_bit</code>.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">bit_position</code>
+            </p>
+            </td>
+<td>
+            <p>
+              The value of the template parameter, in case its needed from a renamed
+              instantiation of the class template.
+            </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section" lang="en">
+<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
+      Bit-Mask Class Template</a>
+</h3></div></div></div>
+<p>
+        The <code class="literal">boost::low_bits_mask_t</code> class template provides constants
+        for bit masks representing the lowest bits of a certain amount. The masks
+        are equivalent to the value (2<sup>Bits</sup> - 1), where <code class="literal">Bits</code> is
+        the template parameter. The bit amount must be a nonnegative number from
+        zero to <span class="emphasis"><em>Max</em></span>, where Max is the number of bits supported
+        by the largest unsigned built-in integral type. The following table describes
+        the members of an instantiation of <code class="literal">low_bits_mask_t</code>.
+      </p>
+<div class="table">
+<a name="id674318"></a><p class="title"><b>Table 3. 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">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+            <p>
+              Member
+            </p>
+            </th>
+<th>
+            <p>
+              Meaning
+            </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+            <p>
+              <code class="literal">least</code>
+            </p>
+            </td>
+<td>
+            <p>
+              The smallest unsigned built-in type that supports the given bit count.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">fast</code>
+            </p>
+            </td>
+<td>
+            <p>
+              The quick-to-manipulate analog of <code class="literal">least</code>.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">sig_bits</code>
+            </p>
+            </td>
+<td>
+            <p>
+              A <code class="literal">least</code> constant of the desired bit-masking value.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">sig_bits_fast</code>
+            </p>
+            </td>
+<td>
+            <p>
+              A <code class="literal">fast</code> analog of <code class="literal">sig_bits</code>.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <code class="literal">bit_count</code>
+            </p>
+            </td>
+<td>
+            <p>
+              The value of the template parameter, in case its needed from a renamed
+              instantiation of the class template.
+            </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</div>
+<div class="section" lang="en">
+<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
+      Notes</a>
+</h3></div></div></div>
+<p>
+        When <code class="literal">Bits</code> is the exact size of a built-in unsigned type,
+        the implementation has to change to prevent undefined behavior. Therefore,
+        there are specializations of <code class="literal">low_bits_mask_t</code> at those
+        bit counts.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">integer</span><span class="special">/</span><span class="identifier">integer_mask</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="comment">//...
+</span>
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">high_bit_mask_t</span><span class="special"><</span><span class="number">29</span><span class="special">></span>  <span class="identifier">mask1_type</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">low_bits_mask_t</span><span class="special"><</span><span class="number">15</span><span class="special">></span>  <span class="identifier">mask2_type</span><span class="special">;</span>
+
+    <span class="identifier">mask1_type</span><span class="special">::</span><span class="identifier">least</span>  <span class="identifier">my_var1</span><span class="special">;</span>
+    <span class="identifier">mask2_type</span><span class="special">::</span><span class="identifier">fast</span>   <span class="identifier">my_var2</span><span class="special">;</span>
+    <span class="comment">//...
+</span>
+    <span class="identifier">my_var1</span> <span class="special">|=</span> <span class="identifier">mask1_type</span><span class="special">::</span><span class="identifier">high_bit</span><span class="special">;</span>
+    <span class="identifier">my_var2</span> <span class="special">&=</span> <span class="identifier">mask2_type</span><span class="special">::</span><span class="identifier">sig_bits_fast</span><span class="special">;</span>
+
+    <span class="comment">//...
+</span><span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<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
+      Program</a>
+</h3></div></div></div>
+<p>
+        The program integer_mask_test.cpp
+        is a simplistic demonstration of the results from instantiating various examples
+        of the bit mask class templates.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The class templates in this header are an extension of the <a class="link" href="integer.html" title="Integer Type Selection">integer
+        type selection class templates</a>. The new class templates provide the
+        same sized types, but also convienent masks to use when extracting the highest
+        or all the significant bits when the containing built-in type contains more
+        bits. This prevents contaimination of values by the higher, unused bits.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The author of the Boost bit mask class templates is <a href="http://www.boost.org/people/daryle_walker.html" target="_top">Daryle
+        Walker</a>.
+      </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/boost_integer/minmax.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/minmax.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,160 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Compile time min/max calculation</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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="next" href="history.html" title="History">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section">Usage</span></dt>
+<dt><span class="section">Example</span></dt>
+<dt><span class="section"><a href="minmax.html#boost_integer.minmax.demonstration_program">Demonstration
+      Program</a></span></dt>
+<dt><span class="section">Rationale</span></dt>
+<dt><span class="section">Credits</span></dt>
+</dl></div>
+<p>
+      The class templates in <boost/integer/static_min_max.hpp>
+      provide a compile-time evaluation of the minimum or maximum of two integers.
+      These facilities are useful for generic programming problems.
+    </p>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+<span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined</em></span> <span class="identifier">static_min_max_signed_type</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="emphasis"><em>implementation-defined</em></span> <span class="identifier">static_min_max_unsigned_type</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">static_min_max_signed_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_min_max_signed_type</span> <span class="identifier">Value2</span> <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">static_signed_min</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">static_min_max_signed_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_min_max_signed_type</span> <span class="identifier">Value2</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">static_signed_max</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">static_min_max_unsigned_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_min_max_unsigned_type</span> <span class="identifier">Value2</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">static_unsigned_min</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="identifier">static_min_max_unsigned_type</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="identifier">static_min_max_unsigned_type</span> <span class="identifier">Value2</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">static_unsigned_max</span><span class="special">;</span>
+
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The four class templates provide the combinations for finding the minimum
+        or maximum of two signed or <code class="literal">unsigned</code> (<code class="literal">long</code>)
+        parameters, Value1 and Value2, at compile-time. Each template has a single
+        static data member, <code class="literal">value</code>, which is set to the respective
+        minimum or maximum of the template's parameters.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">integer</span><span class="special">/</span><span class="identifier">static_min_max</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+
+<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">AddendSize1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">AddendSize2</span> <span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">adder</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">static</span>  <span class="keyword">unsigned</span> <span class="keyword">long</span>  <span class="keyword">const</span>  <span class="identifier">addend1_size</span> <span class="special">=</span> <span class="identifier">AddendSize1</span><span class="special">;</span>
+    <span class="keyword">static</span>  <span class="keyword">unsigned</span> <span class="keyword">long</span>  <span class="keyword">const</span>  <span class="identifier">addend2_size</span> <span class="special">=</span> <span class="identifier">AddendSize2</span><span class="special">;</span>
+    <span class="keyword">static</span>  <span class="keyword">unsigned</span> <span class="keyword">long</span>  <span class="keyword">const</span>  <span class="identifier">sum_size</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">static_unsigned_max</span><span class="special"><</span><span class="identifier">AddendSize1</span><span class="special">,</span> <span class="identifier">AddendSize2</span><span class="special">>::</span><span class="identifier">value</span> <span class="special">+</span> <span class="number">1</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="keyword">int</span>  <span class="identifier">addend1_type</span><span class="special">[</span> <span class="identifier">addend1_size</span> <span class="special">];</span>
+    <span class="keyword">typedef</span> <span class="keyword">int</span>  <span class="identifier">addend2_type</span><span class="special">[</span> <span class="identifier">addend2_size</span> <span class="special">];</span>
+    <span class="keyword">typedef</span> <span class="keyword">int</span>  <span class="identifier">sum_type</span><span class="special">[</span> <span class="identifier">sum_size</span> <span class="special">];</span>
+
+    <span class="keyword">void</span>  <span class="keyword">operator</span> <span class="special">()(</span> <span class="identifier">addend1_type</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">addend2_type</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">a2</span><span class="special">,</span> <span class="identifier">sum_type</span> <span class="special">&</span><span class="identifier">s</span> <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="comment">//...
+</span>
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="keyword">int</span> <span class="keyword">const</span>   <span class="identifier">a1</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="number">3</span> <span class="special">};</span>  <span class="comment">// 340
+</span>    <span class="keyword">int</span> <span class="keyword">const</span>   <span class="identifier">a2</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">9</span><span class="special">,</span> <span class="number">8</span> <span class="special">};</span>     <span class="comment">//  89
+</span>    <span class="keyword">int</span>         <span class="identifier">s</span><span class="special">[</span> <span class="number">4</span> <span class="special">];</span>
+    <span class="identifier">adder</span><span class="special"><</span><span class="number">3</span><span class="special">,</span><span class="number">2</span><span class="special">></span>  <span class="identifier">obj</span><span class="special">;</span>
+
+    <span class="identifier">obj</span><span class="special">(</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,</span> <span class="identifier">s</span> <span class="special">);</span>  <span class="comment">// 's' should be 429 or { 9, 2, 4, 0 }
+</span>    <span class="comment">//...
+</span><span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<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
+      Program</a>
+</h3></div></div></div>
+<p>
+        The program static_min_max_test.cpp
+        is a simplistic demonstration of various comparisons using the compile-time
+        extrema class templates.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        Sometimes the minimum or maximum of several values needs to be found for
+        later compile-time processing, <span class="emphasis"><em>e.g.</em></span> for a bound for
+        another class template.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The author of the Boost compile-time extrema class templates is <a href="http://www.boost.org/people/daryle_walker.html" target="_top">Daryle
+        Walker</a>.
+      </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/boost_integer/traits.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/boost_integer/traits.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,214 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Integer Traits</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" 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="next" href="integer.html" title="Integer Type Selection">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<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>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Motivation</span></dt>
+<dt><span class="section">Synopsis</span></dt>
+<dt><span class="section">Description</span></dt>
+<dt><span class="section">Test Program</span></dt>
+<dt><span class="section">Acknowledgements</span></dt>
+</dl></div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The C++ Standard Library <limits> header supplies a class template
+        <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special"><></span></code>
+        with specializations for each fundamental type.
+      </p>
+<p>
+        For integer types, the interesting members of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><></span></code> are:
+      </p>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_specialized</span><span class="special">;</span>      <span class="comment">// Will be true for integer types.
+</span><span class="keyword">static</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">()</span> <span class="keyword">throw</span><span class="special">();</span>                <span class="comment">// Smallest representable value.
+</span><span class="keyword">static</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">()</span> <span class="keyword">throw</span><span class="special">();</span>                <span class="comment">// Largest representable value.
+</span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">;</span>               <span class="comment">// For integers, the number of value bits.
+</span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">digits10</span><span class="special">;</span>             <span class="comment">// The number of base 10 digits that can be represented.
+</span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_signed</span><span class="special">;</span>           <span class="comment">// True if the type is signed.
+</span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_integer</span><span class="special">;</span>          <span class="comment">// Will be true for all integer types.
+</span></pre>
+<p>
+        For many uses, these are sufficient. But min() and max() are problematical
+        because they are not constant expressions (std::5.19), yet some usages require
+        constant expressions.
+      </p>
+<p>
+        The template class <code class="literal">integer_traits</code> addresses this problem.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+  <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+  <span class="keyword">class</span> <span class="identifier">integer_traits</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+  <span class="special">{</span>
+     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">is_integral</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span>
+     <span class="comment">//
+</span>     <span class="comment">// These members are defined only if T is a built-in
+</span>     <span class="comment">// integal type:
+</span>     <span class="comment">//
+</span>     <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">const_min</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
+     <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">const_max</span> <span class="special">=</span> <span class="emphasis"><em>implementation-defined</em></span><span class="special">;</span>
+  <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        Template class <code class="literal">integer_traits</code> is derived from <code class="literal">std::numeric_limits</code>.
+        In general, it adds the single <code class="literal">bool</code> member <code class="literal">is_integral</code>
+        with the compile-time constant value <code class="literal">false</code>. However, for
+        all integral types <code class="literal">T</code> (std::3.9.1/7 [basic.fundamental]),
+        there are specializations provided with the following compile-time constants
+        defined:
+      </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+              <p>
+                member
+              </p>
+              </th>
+<th>
+              <p>
+                type
+              </p>
+              </th>
+<th>
+              <p>
+                value
+              </p>
+              </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+              <p>
+                <code class="literal">is_integral</code>
+              </p>
+              </td>
+<td>
+              <p>
+                bool
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="literal">true</code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="literal">const_min</code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="literal">T</code>
+              </p>
+              </td>
+<td>
+              <p>
+                equivalent to <code class="literal">std::numeric_limits<T>::min()</code>
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
+                <code class="literal">const_max</code>
+              </p>
+              </td>
+<td>
+              <p>
+                <code class="literal">T</code>
+              </p>
+              </td>
+<td>
+              <p>
+                equivalent to <code class="literal">std::numeric_limits<T>::max()</code>
+              </p>
+              </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+        Note: A flag <code class="literal">is_integral</code> is provided, because a user-defined
+        integer class should specialize <code class="literal">std::numeric_limits<>::is_integer
+        = true</code>, nonetheless compile-time constants <code class="literal">const_min</code>
+        and <code class="literal">const_max</code> cannot be provided for that user-defined
+        class.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        The program <code class="literal">integer_traits_test.cpp</code>
+        exercises the <code class="literal">integer_traits</code> class.
+      </p>
+</div>
+<div class="section" lang="en">
+<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>
+</h3></div></div></div>
+<p>
+        Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers discussed the integer
+        traits idea on the boost mailing list in August 1999.
+      </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<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>
+</div>
+</body>
+</html>
Added: trunk/libs/integer/doc/html/index.html
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/html/index.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,238 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Boost.Integer</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
+<link rel="home" href="index.html" title="Boost.Integer">
+<link rel="next" href="boost_integer/cstdint.html" title="Standard Integer Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<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="article" lang="en">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="boost_integer"></a>Boost.Integer</h2></div>
+<div><div class="authorgroup">
+<div class="author"><h3 class="author">
+<span class="firstname">Beman</span> <span class="surname">Dawes</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Daryle</span> <span class="surname">Walker</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">Gennaro</span> <span class="surname">Prota</span>
+</h3></div>
+<div class="author"><h3 class="author">
+<span class="firstname">John</span> <span class="surname">Maddock</span>
+</h3></div>
+</div></div>
+<div><p class="copyright">Copyright © 2001 -2009 Beman Dawes, Daryle Walker, Gennaro Prota,
+      John Maddock</p></div>
+<div><div class="legalnotice">
+<a name="id662860"></a><p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"> Overview</span></dt>
+<dt><span class="section"> Standard Integer Types</span></dt>
+<dt><span class="section"> Integer Traits</span></dt>
+<dt><span class="section"> Integer Type Selection</span></dt>
+<dt><span class="section"> Integer Masks</span></dt>
+<dt><span class="section"> Compile time log2 Calculation</span></dt>
+<dt><span class="section"> Compile time min/max calculation</span></dt>
+<dt><span class="section"> History</span></dt>
+</dl>
+</div>
+<div class="section" lang="en">
+<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>
+</h2></div></div></div>
+<p>
+      Boost.Integer consists of the following components:
+    </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+            <p>
+              Component
+            </p>
+            </th>
+<th>
+            <p>
+              Header
+            </p>
+            </th>
+<th>
+            <p>
+              Purpose
+            </p>
+            </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+            <p>
+              Forward Declarations.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/integer_fwd.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              Forward declarations of classes and class templates - for use when
+              just the name of a class is needed.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <a class="link" href="boost_integer/cstdint.html" title="Standard Integer Types">Standard Integer Types</a>.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/cstdint.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              Provides typedef's based on the 1999 C Standard header <code class="computeroutput"><span class="special"><</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>, wrapped in namespace boost. This
+              implementation may #include the compiler supplied <code class="computeroutput"><span class="special"><</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>,
+              if present.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <a class="link" href="boost_integer/traits.html" title="Integer Traits">Integer Traits</a>.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/integer_traits.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              Class template <code class="literal">boost::integer_traits</code>, derives from
+              <code class="literal">std::numeric_limits</code> and adds <code class="literal">const_min</code>
+              and <code class="literal">const_max</code> members.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <a class="link" href="boost_integer/integer.html" title="Integer Type Selection">Integer Type Selection</a>.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/integer.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              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. Useful
+              for generic programming.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <a class="link" href="boost_integer/mask.html" title="Integer Masks">Integer Masks</a>.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/integer/integer_mask.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              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
+              bit position(s) are based on a compile-time variable. Useful for generic
+              programming.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <a class="link" href="boost_integer/log2.html" title="Compile time log2 Calculation">Compile time log2 Calculation</a>.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/integer/static_log2.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              Template for finding the highest power of two in a number: Use to find
+              the bit-size/range based on a maximum value. Useful for generic programming.
+            </p>
+            </td>
+</tr>
+<tr>
+<td>
+            <p>
+              <a class="link" href="boost_integer/minmax.html" title="Compile time min/max calculation">Compile time min/max calculation</a>.
+            </p>
+            </td>
+<td>
+            <p>
+              <code class="literal"><boost/integer/static_min_max.hpp></code>
+            </p>
+            </td>
+<td>
+            <p>
+              Templates for finding the extrema of two numbers: Use to find a bound
+              based on a minimum or maximum value. Useful for generic programming.
+            </p>
+            </td>
+</tr>
+</tbody>
+</table></div>
+</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: November 25, 2009 at 12:02:32 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="boost_integer/cstdint.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>
Added: trunk/libs/integer/doc/integer.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/integer/doc/integer.qbk	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -0,0 +1,801 @@
+[article Boost.Integer
+    [quickbook 1.5]
+    [copyright 2001-2009 Beman Dawes, Daryle Walker, Gennaro Prota, John Maddock]
+    [purpose Integer Type Selection]
+    [license
+        Distributed under the Boost Software License, Version 1.0.
+        (See accompanying file LICENSE_1_0.txt or copy at
+        [@http://www.boost.org/LICENSE_1_0.txt])
+    ]
+    [authors [Dawes, Beman], [Walker, Daryle], [Prota, Gennaro], [Maddock, John]]
+    [/last-revision $Date: 2008-02-21 12:58:15 +0000 (Thu, 21 Feb 2008) $]
+]
+
+[template super[x]'''<superscript>'''[x]'''</superscript>''']
+
+[section:overview Overview]
+
+Boost.Integer consists of the following components:
+
+[table 
+   [[Component][Header][Purpose]]
+   [
+      [Forward Declarations.]
+      [[^[@../../../../boost/integer_fwd.hpp <boost/integer_fwd.hpp>]]]
+      [Forward declarations of classes and class templates - for use when just the name of a class is needed.]
+   ]
+   [
+      [[link boost_integer.cstdint Standard Integer Types].]
+      [[^[@../../../../boost/cstdint.hpp <boost/cstdint.hpp>]]]
+      [Provides typedef's based on the 1999 C Standard header `<stdint.h>`, wrapped in namespace boost. 
+      This implementation may #include the compiler supplied `<stdint.h>`, if present.]
+   ]
+   [
+      [[link boost_integer.traits Integer Traits].]
+      [[^[@../../../../boost/integer_traits.hpp <boost/integer_traits.hpp>]]]
+      [Class template [^boost::integer_traits], derives from [^std::numeric_limits] and adds [^const_min] and [^const_max] members.]
+   ]
+   [
+      [[link boost_integer.integer Integer Type Selection].]
+      [[^[@../../../../boost/hpp <boost/integer.hpp>]]]
+      [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. 
+      Useful for generic programming. ]
+   ]
+   [
+      [[link boost_integer.mask Integer Masks].]
+      [[^[@../../../../boost/integer/integer_mask.hpp <boost/integer/integer_mask.hpp>]]]
+      [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 bit position(s) are based on a compile-time variable. Useful for generic programming. ]
+   ]
+   [
+      [[link boost_integer.log2 Compile time log2 Calculation].]
+      [[^[@../../../../boost/integer/static_log2.hpp <boost/integer/static_log2.hpp>]]]
+      [Template for finding the highest power of two in a number: 
+      Use to find the bit-size/range based on a maximum value. Useful for generic programming. ]
+   ]
+   [
+      [[link boost_integer.minmax Compile time min/max calculation].]
+      [[^[@../../../../boost/integer/static_min_max.hpp <boost/integer/static_min_max.hpp>]]]
+      [Templates for finding the extrema of two numbers: 
+      Use to find a bound based on a minimum or maximum value. Useful for generic programming. ]
+   ]
+]
+
+[endsect]
+
+[section:cstdint Standard Integer Types]
+
+[section Overview]
+
+The header [^[@../../../../boost/cstdint.hpp <boost/cstdint.hpp>]] provides the typedef's useful 
+for writing portable code that requires certain integer widths. All typedef's are in namespace boost.
+
+The specifications are based on the ISO/IEC 9899:1999 C Language standard header <stdint.h>.  
+The 64-bit types required by the C standard are not required in the boost header, 
+and may not be supplied in all implementations, because [^long long] is not [yet] included in the C++ standard.
+
+See [@../../test/cstdint_test.cpp cstdint_test.cpp] for a test program.
+
+[endsect]
+
+[section:rationale Rationale]
+
+The organization of the Boost.Integer headers and classes is designed to take advantage of <stdint.h> types from the 
+1999 C standard without resorting to undefined behavior in terms of the 1998 C++ standard. 
+The header <boost/cstdint.hpp> makes the standard integer types safely available in namespace [^boost] 
+without placing any names in namespace [^std]. As always, the intension is to complement rather than compete 
+with the C++ Standard Library. Should some future C++ standard include <stdint.h> and <cstdint>, 
+then <boost/cstdint.hpp> will continue to function, but will become redundant and may be safely deprecated.
+
+Because these are boost headers, their names conform to boost header naming conventions rather than 
+C++ Standard Library header naming conventions.
+
+[endsect]
+
+[section:ce ['Caveat emptor]]
+
+As an implementation artifact, certain C <limits.h> macro names may possibly be 
+visible to users of <boost/cstdint.hpp>. Don't use these macros; they are not part of 
+any Boost-specified interface. Use [^boost::integer_traits<>] or [^std::numeric_limits<>] instead.
+
+As another implementation artifact, certain C <stdint.h> typedef names may possibly be visible 
+in the global namespace to users of <boost/cstdint.hpp>. Don't use these names, they are not part of 
+any Boost-specified interface. Use the respective names in namespace [^boost] instead.
+
+[endsect]
+
+[section Exact-width integer types]
+
+The typedef [^int#_t], with # replaced by the width, designates a signed integer type of exactly # bits; 
+for example [^int8_t] denotes an 8-bit signed integer type.  Similarly, the typedef [^uint#_t] designates an unsigned 
+integer type of exactly # bits.
+
+These types are optional. However, if an implementation provides integer types with widths of 8, 16, 32, or 64 bits, 
+it shall define the corresponding typedef names.
+
+The absence of int64_t and uint64_t is indicated by the macro `BOOST_NO_INT64_T`.
+
+[endsect] 
+
+[section Minimum-width integer types]
+
+The typedef [^int_least#_t], with # replaced by the width,  designates a signed integer type with a width 
+of at least # bits, such that no signed integer type with lesser size has at least the specified width. 
+Thus, [^int_least32_t] denotes a signed integer type with a width of at least 32 bits. 
+Similarly, the typedef name [^uint_least#_t] designates an unsigned integer type with a width of at least # bits, 
+such that no unsigned integer type with lesser size has at least the specified width.
+
+Required minimum-width integer types:
+
+* [^int_least8_t]
+* [^int_least16_t]
+* [^int_least32_t]
+* [^uint_least8_t]
+* [^uint_least16_t]
+* [^uint_least32_t]
+
+The types:
+
+* [^int_least64_t]
+* [^uint_least64_t]
+
+Are available only if, after inclusion of [^<boost/cstdint.hpp>] the macro `BOOST_NO_INT64_T` is ['[*not defined]].
+
+All other minimum-width integer types are optional.
+
+[endsect] 
+
+[section Fastest minimum-width integer types]
+
+The typedef [^int_fast#_t], with # replaced by the width, designates the fastest signed integer type 
+with a width of at least # bits. Similarly, the typedef name [^uint_fast#_t] designates the fastest 
+unsigned integer type with a width of at least # bits.
+
+There is no guarantee that these types are fastest for all purposes.  In any case, however, they satisfy  
+the signedness and width requirements.
+
+Required fastest minimum-width integer types:
+
+* [^int_fast8_t]
+* [^int_fast16_t]
+* [^int_fast32_t]
+* [^uint_fast8_t]
+* [^uint_fast16_t]
+* [^uint_fast32_t]
+
+The types:
+
+* [^int_fast64_t]
+* [^uint_fast64_t]
+
+Are available only if, after inclusion of [^<boost/cstdint.hpp>] the macro `BOOST_NO_INT64_T` is ['[*not defined]].
+
+All other fastest minimum-width integer types are optional.
+
+[endsect] 
+
+[section Greatest-width integer types]
+
+The typedef [^intmax_t ]designates a signed integer type capable of representing any value of any signed integer type.
+
+The typedef [^uintmax_t] designates an unsigned integer type capable of representing any value of any unsigned integer type.
+
+These types are required.
+
+[endsect]
+[endsect]
+
+[section:traits Integer Traits]
+
+[section Motivation]
+
+The C++ Standard Library <limits> header supplies a class template `numeric_limits<>` with specializations for each fundamental type.
+
+For integer types, the interesting members of `std::numeric_limits<>` are: 
+
+   static const bool is_specialized;      // Will be true for integer types.
+   static T min() throw();                // Smallest representable value.
+   static T max() throw();                // Largest representable value.
+   static const int digits;               // For integers, the number of value bits.
+   static const int digits10;             // The number of base 10 digits that can be represented.
+   static const bool is_signed;           // True if the type is signed.
+   static const bool is_integer;          // Will be true for all integer types.
+
+For many uses, these are sufficient. 
+But min() and max() are problematical because they are not constant expressions (std::5.19), 
+yet some usages require constant expressions. 
+
+The template class [^integer_traits] addresses this problem. 
+
+[endsect] 
+
+[section Synopsis]
+
+   namespace boost {
+     template<class T>
+     class integer_traits : public std::numeric_limits<T>
+     {
+        static const bool is_integral = false;
+        //
+        // These members are defined only if T is a built-in
+        // integal type:
+        //
+        static const T const_min = ``['implementation-defined]``;
+        static const T const_max = ``['implementation-defined]``;
+     };
+   }
+
+[endsect] 
+
+[section Description]
+
+Template class [^integer_traits] is derived from [^std::numeric_limits]. In general, it adds the single 
+[^bool] member [^is_integral] with the compile-time constant value [^false]. 
+However, for all integral types [^T] (std::3.9.1/7 [basic.fundamental]), there are specializations 
+provided with the following compile-time constants defined: 
+
+[table 
+   [[member][type][value]]
+   [[[^is_integral]][bool][[^true]]]
+   [[[^const_min]][[^T]][equivalent to [^std::numeric_limits<T>::min()]]]
+   [[[^const_max]][[^T]][equivalent to [^std::numeric_limits<T>::max()]]]
+]
+
+Note: A flag [^is_integral] is provided, because a user-defined integer class should specialize 
+[^std::numeric_limits<>::is_integer = true], nonetheless compile-time constants 
+[^const_min] and [^const_max] cannot be provided for that user-defined class. 
+
+[endsect] 
+
+[section Test Program]
+
+The program [^[@../../test/integer_traits_test.cpp integer_traits_test.cpp]] exercises the [^integer_traits] class. 
+
+[endsect] 
+
+[section Acknowledgements]
+
+Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers discussed the integer traits idea on the boost mailing list in August 1999.
+
+[endsect]
+[endsect]
+
+[section:integer Integer Type Selection]
+
+The [@../../../../boost/integer.hpp <boost/integer.hpp>] type selection templates allow 
+integer types to be selected based on desired characteristics such as number of bits or maximum value. 
+This facility is particularly useful for solving generic programming problems.
+
+[section:synopsis Synopsis]
+
+   namespace boost
+   {
+     //  fast integers from least integers
+     template<typename LeastInt>
+     struct int_fast_t
+     {
+         typedef ``['implementation-defined-type]``  fast;
+     };
+
+     //  signed
+     template<int Bits>
+     struct int_t 
+     {
+         typedef ``['implementation-defined-type]``  least;
+         typedef int_fast_t<least>::fast      fast;
+     };
+
+     //  unsigned
+     template<int Bits>
+     struct uint_t 
+     {
+         typedef ``['implementation-defined-type]``  least;
+         typedef int_fast_t<least>::fast      fast;
+     };
+
+     //  signed
+     template<long long MaxValue>
+     struct int_max_value_t 
+     {
+         typedef ``['implementation-defined-type]``  least;
+         typedef int_fast_t<least>::fast      fast;
+     };
+
+     template<long long MinValue>
+     struct int_min_value_t 
+     {
+         typedef ``['implementation-defined-type]``  least;
+         typedef int_fast_t<least>::fast      fast;
+     };
+
+     //  unsigned
+     template<unsigned long long Value>
+     struct uint_value_t 
+     {
+         typedef ``['implementation-defined-type]``  least;
+         typedef int_fast_t<least>::fast      fast;
+     };
+   } // namespace boost
+
+[endsect]
+
+[section:easiest Easiest-to-Manipulate Types]
+
+The [^int_fast_t] class template maps its input type to the next-largest type that the processor 
+can manipulate the easiest, or to itself if the input type is already an easy-to-manipulate type. 
+For instance, processing a bunch of [^char] objects may go faster if they were converted to [^int] objects before processing. 
+The input type, passed as the only template parameter, must be a built-in integral type, except [^bool]. 
+Unsigned integral types can be used, as well as signed integral types, despite the name. 
+The output type is given as the class member [^fast].
+
+[*Implementation Notes:] 
+By default, the output type is identical to the input type. Eventually, this code's implementation should 
+be conditionalized for each platform to give accurate mappings between the built-in types and the easiest-to-manipulate 
+built-in types. Also, there is no guarantee that the output type actually is easier to manipulate than the input type.
+
+[endsect]
+
+[section:sized Sized Types]
+
+The [^int_t], [^uint_t], [^int_max_value_t], [^int_min_value_t], and [^uint_value_t] class templates find 
+the most appropiate built-in integral type for the given template parameter. This type is given by the 
+class member [^least]. The easiest-to-manipulate version of that type is given by the class member [^fast]. 
+The following table describes each template's criteria.
+
+[table Criteria for the Sized Type Class Templates
+   [
+      [Class Template][Template Parameter Mapping]
+   ]
+   [
+      [[^boost::int_t<N>]]
+      [The smallest built-in signed integral type with at least /N/ bits, including the sign bit. 
+      The parameter should be a positive number. A compile-time error results if the parameter is 
+      larger than the number of bits in the largest integer type.]
+   ]
+   [
+      [[^boost::uint_t<N>]]
+      [The smallest built-in unsigned integral type with at least /N/ bits. 
+      The parameter should be a positive number. A compile-time error results if the 
+      parameter is larger than the number of bits in the largest integer type.]
+   ]
+   [
+      [[^boost::int_max_value_t<V>]]
+      [The smallest built-in signed integral type that can hold all the values in the inclusive range ['0 - V]. 
+      The parameter should be a positive number.]
+   ]
+   [
+      [[^boost::int_min_value_t<V>]]
+      [The smallest built-in signed integral type that can hold all the values in the inclusive range ['V-0]. 
+      The parameter should be a negative number.]
+   ]
+   [
+      [[^boost::uint_value_t<V>]]
+      [The smallest built-in unsigned integral type that can hold all positive values
+      up to and including /V/. The parameter should be a positive number.]
+   ]
+]
+
+[endsect]
+
+[section Example]
+
+   #include <boost/integer.hpp>
+
+   //...
+
+   int main()
+   {
+       boost::int_t<24>::least my_var;  // my_var has at least 24-bits
+       //...
+       // This one is guarenteed not to be truncated:
+       boost::int_max_value_t<1000>::least my1000 = 1000;
+       //...
+       // This one is guarenteed not to be truncated, and as fast
+       // to manipulate as possible, it's size may be greater than
+       // that of my1000:
+       boost::int_max_value_t<1000>::fast my_fast1000 = 1000;
+   }
+
+[endsect]
+
+[section Demonstration Program]
+
+The program [@../../test/integer_test.cpp integer_test.cpp] is a simplistic demonstration of the results from instantiating 
+various examples of the sized type class templates.
+
+[endsect]
+
+[section Rationale]
+
+The rationale for the design of the templates in this header includes:
+
+* Avoid recursion because of concern about C++'s limited guaranteed recursion depth (17).
+* Avoid macros on general principles.
+* Try to keep the design as simple as possible.
+
+[endsect]
+
+[section Alternative]
+
+If the number of bits required is known beforehand, it may be more appropriate to use the types supplied 
+in [@../../../../boost/cstdint.hpp <boost/cstdint.hpp>].
+
+[endsect]
+
+[section Credits]
+
+The author of most of the Boost integer type choosing templates is 
+[@http://www.boost.org/people/beman_dawes.html Beman Dawes]. 
+He gives thanks to Valentin Bonnard and [@http://www.boost.org/people/kevlin_henney.htm Kevlin Henney] 
+for sharing their designs for similar templates. 
+[@http://www.boost.org/people/daryle_walker.html Daryle Walker] designed the value-based sized templates.
+
+[endsect]
+[endsect]
+
+
+
+[section:mask Integer Masks]
+
+[section Overview]
+
+The class templates in [@../../../../boost/integer/integer_mask.hpp <boost/integer/integer_mask.hpp>] 
+provide bit masks for a certain bit position or a contiguous-bit pack of a certain size. 
+The types of the masking constants come from the [link boost_integer.integer integer type selection templates] header.
+
+[endsect]
+
+[section Synopsis]
+
+   #include <cstddef>  // for std::size_t
+
+   namespace boost
+   {
+
+   template <std::size_t Bit>
+   struct high_bit_mask_t
+   {
+       typedef ``['implementation-defined-type]``  least;
+       typedef ``['implementation-defined-type]``  fast;
+
+       static const least       high_bit       = ``['implementation-defined]``;
+       static const fast        high_bit_fast  = ``['implementation-defined]``;
+
+       static const std::size_t bit_position   = Bit;
+   };
+
+   template <std::size_t Bits>
+   struct low_bits_mask_t
+   {
+       typedef ``['implementation-defined-type]``  least;
+       typedef ``['implementation-defined-type]``  fast;
+
+       static const least       sig_bits       = ``['implementation-defined]``;
+       static const fast        sig_bits_fast  = ``['implementation-defined]``;
+
+       static const std::size_t bit_count      = Bits;
+   };
+
+   // Specializations for low_bits_mask_t exist for certain bit counts.
+
+   }  // namespace boost
+
+[endsect] 
+
+[section Single Bit-Mask Class Template]
+
+The [^boost::high_bit_mask_t] class template provides constants for bit masks representing the bit at a 
+certain position. The masks are equivalent to the value 2[super Bit], where [^Bit] is the template parameter. 
+The bit position must be a nonnegative number from zero to ['Max], where Max is one less than the 
+number of bits supported by the largest unsigned built-in integral type. The following table describes 
+the members of an instantiation of [^high_bit_mask_t].
+
+[table Members of the `boost::high_bit_mask_t` Class Template
+   [[Member][Meaning]]
+   [[[^least]][The smallest unsigned built-in type that supports the given bit position.]]
+   [[[^fast]][The quick-to-manipulate analog of [^least].]]
+   [[[^high_bit]][A [^least] constant of the desired bit-masking value.]]
+   [[[^high_bit_fast]][A [^fast] analog of [^high_bit].]]
+   [[[^bit_position]][The value of the template parameter, in case its needed from a renamed instantiation of the class template.]]
+]
+
+[endsect] 
+
+[section Group Bit-Mask Class Template]
+
+The [^boost::low_bits_mask_t] class template provides constants for bit masks representing the lowest 
+bits of a certain amount. The masks are equivalent to the value (2[super Bits] - 1), 
+where [^Bits] is the template parameter. The bit amount must be a nonnegative number from 
+zero to ['Max], where Max is the number of bits supported by the largest unsigned built-in integral type. 
+The following table describes the members of an instantiation of [^low_bits_mask_t].
+
+[table Members of the [^boost::low_bits_mask_t] Class Template
+[[Member][Meaning]]
+[[[^least]][The smallest unsigned built-in type that supports the given bit count.]]
+[[[^fast]][The quick-to-manipulate analog of [^least].]]
+[[[^sig_bits]][A [^least] constant of the desired bit-masking value.]]
+[[[^sig_bits_fast]][A [^fast] analog of [^sig_bits].]]
+[[[^bit_count]][The value of the template parameter, in case its needed from a renamed instantiation of the class template.]]
+]
+
+[endsect]
+
+[section Implementation Notes]
+
+When [^Bits] is the exact size of a built-in unsigned type, the implementation has to change to 
+prevent undefined behavior. Therefore, there are specializations of [^low_bits_mask_t] at those bit counts.
+
+[endsect]
+
+[section Example]
+
+   #include <boost/integer/integer_mask.hpp>
+
+   //...
+
+   int main()
+   {
+       typedef boost::high_bit_mask_t<29>  mask1_type;
+       typedef boost::low_bits_mask_t<15>  mask2_type;
+
+       mask1_type::least  my_var1;
+       mask2_type::fast   my_var2;
+       //...
+
+       my_var1 |= mask1_type::high_bit;
+       my_var2 &= mask2_type::sig_bits_fast;
+
+       //...
+   }
+
+[endsect] 
+
+[section Demonstration Program]
+
+The program [@../../test/integer_mask_test.cpp integer_mask_test.cpp] is a simplistic demonstration of the 
+results from instantiating various examples of the bit mask class templates.
+
+[endsect] 
+
+[section Rationale]
+
+The class templates in this header are an extension of the [link boost_integer.integer integer type selection class templates]. 
+The new class templates provide the same sized types, but also convienent masks to use when extracting the 
+highest or all the significant bits when the containing built-in type contains more bits. 
+This prevents contaimination of values by the higher, unused bits.
+
+[endsect] 
+
+[section Credits]
+
+The author of the Boost bit mask class templates is [@http://www.boost.org/people/daryle_walker.html Daryle Walker].
+
+[endsect]
+[endsect]
+
+[section:log2 Compile time log2 Calculation]
+
+The class template in [@../../../../boost/integer/static_log2.hpp <boost/integer/static_log2.hpp>] 
+determines the position of the highest bit in a given value. This facility is useful for solving generic programming problems.
+
+[section Synopsis]
+
+   namespace boost
+   {
+
+     typedef ``['implementation-defined]`` static_log2_argument_type;
+     typedef ``['implementation-defined]`` static_log2_result_type;
+
+     template <static_log2_argument_type arg>
+     struct static_log2
+     {
+       static const static_log2_result_type value = ``['implementation-defined]``;
+     };
+
+
+     template < >
+     struct static_log2< 0 >
+     {
+       // The logarithm of zero is undefined.
+     };
+
+
+   }  // namespace boost
+
+[endsect] 
+
+[section Usage]
+
+The [^boost::static_log2] class template takes one template parameter, a value of type 
+[^static_log2_argument_type]. The template only defines one member, [^value], which gives the 
+truncated base-two logarithm of the template argument.
+
+Since the logarithm of zero, for any base, is undefined, there is a specialization of [^static_log2] 
+for a template argument of zero. This specialization has no members, so an attempt to use the base-two 
+logarithm of zero results in a compile-time error.
+
+Note: 
+
+* [^static_log2_argument_type] is an ['unsigned integer type] (C++ standard, 3.9.1p3).
+* [^static_log2_result_type] is an ['integer type] (C++ standard, 3.9.1p7).
+
+[endsect] 
+
+[section Example]
+
+   #include "boost/integer/static_log2.hpp"
+
+
+   template < boost::static_log2_argument_type value >
+   bool is_it_what()
+   {
+       typedef boost::static_log2<value>  lb_type;
+
+       int  temp = lb_type::value;
+       //...
+       return (temp % 2) != 0;
+   }
+
+   //...
+
+   int main()
+   {
+       bool  temp = is_it_what<2000>();
+       //...
+   # if 0
+       temp = is_it_what<0>();  // would give an error
+   # endif
+       //...
+       temp = is_it_what<24>();
+       //...
+   }
+
+[endsect] 
+
+[section Demonstration Program]
+
+The program [@../../test/static_log2_test.cpp static_log2_test.cpp] is a simplistic 
+demonstration of the results from instantiating various examples of the binary logarithm class template.
+
+[endsect]
+
+[section Rationale]
+
+The base-two (binary) logarithm, abbreviated lb, function is occasionally used to give order-estimates 
+of computer algorithms. The truncated logarithm can be considered the highest power-of-two in a value, 
+which corresponds to the value's highest set bit (for binary integers). Sometimes the highest-bit position 
+could be used in generic programming, which requires the position to be statically (['i.e.] at compile-time) available.
+
+[endsect] 
+
+[section Credits]
+
+The original version of the Boost binary logarithm class template was 
+written by [@http://www.boost.org/people/daryle_walker.html Daryle Walker] and then 
+enhanced by Giovanni Bajo with support for compilers without partial template specialization. 
+The current version was suggested, together with a reference implementation, by Vesa Karvonen. 
+Gennaro Prota wrote the actual source file.
+
+[endsect]
+[endsect]
+
+[section:minmax Compile time min/max calculation]
+
+The class templates in [@../../../../boost/integer/static_min_max.hpp <boost/integer/static_min_max.hpp>] 
+provide a compile-time evaluation of the minimum or maximum of two integers. These facilities are useful 
+for generic programming problems.
+
+[section Synopsis]
+
+   namespace boost
+   {
+   
+   typedef ``['implementation-defined]`` static_min_max_signed_type;
+   typedef ``['implementation-defined]`` static_min_max_unsigned_type;
+
+   template <static_min_max_signed_type Value1, static_min_max_signed_type Value2 >
+       struct static_signed_min;
+
+   template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
+       struct static_signed_max;
+
+   template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
+       struct static_unsigned_min;
+
+   template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
+       struct static_unsigned_max;
+
+   }
+
+[endsect] 
+
+[section Usage]
+
+The four class templates provide the combinations for finding the minimum or maximum of two signed or 
+[^unsigned] ([^long]) parameters, Value1 and Value2, at compile-time. Each template has a single static data member, 
+[^value], which is set to the respective minimum or maximum of the template's parameters.
+
+[endsect] 
+
+[section Example]
+
+   #include <boost/integer/static_min_max.hpp>
+
+   template < unsigned long AddendSize1, unsigned long AddendSize2 >
+   class adder
+   {
+   public:
+       static  unsigned long  const  addend1_size = AddendSize1;
+       static  unsigned long  const  addend2_size = AddendSize2;
+       static  unsigned long  const  sum_size = boost::static_unsigned_max<AddendSize1, AddendSize2>::value + 1;
+
+       typedef int  addend1_type[ addend1_size ];
+       typedef int  addend2_type[ addend2_size ];
+       typedef int  sum_type[ sum_size ];
+
+       void  operator ()( addend1_type const &a1, addend2_type const &a2, sum_type &s ) const;
+   };
+
+   //...
+
+   int main()
+   {
+       int const   a1[] = { 0, 4, 3 };  // 340
+       int const   a2[] = { 9, 8 };     //  89
+       int         s[ 4 ];
+       adder<3,2>  obj;
+
+       obj( a1, a2, s );  // 's' should be 429 or { 9, 2, 4, 0 }
+       //...
+   }
+
+[endsect]
+
+[section Demonstration Program]
+
+The program [@../../test/static_min_max_test.cpp static_min_max_test.cpp] is a simplistic demonstration of 
+various comparisons using the compile-time extrema class templates.
+
+[endsect] 
+
+[section Rationale]
+
+Sometimes the minimum or maximum of several values needs to be found for later compile-time processing, 
+['e.g.] for a bound for another class template.
+
+[endsect]
+
+[section Credits]
+
+The author of the Boost compile-time extrema class templates is [@http://www.boost.org/people/daryle_walker.html Daryle Walker].
+
+[endsect]
+[endsect]
+
+[section:history History]
+
+[h4 1.42.0]
+
+* Reverted Trunk to release branch state (i.e. a "known good state").
+* Fixed issues: [@https://svn.boost.org/trac/boost/ticket/653 653], 
+[@https://svn.boost.org/trac/boost/ticket/3084 3084], 
+[@https://svn.boost.org/trac/boost/ticket/3177 3177], 
+[@https://svn.boost.org/trac/boost/ticket/3180 3180], 
+[@https://svn.boost.org/trac/boost/ticket/3548 3568], 
+[@https://svn.boost.org/trac/boost/ticket/3657 3657], 
+[@https://svn.boost.org/trac/boost/ticket/2134 2134].
+* Added long long support to [^boost::static_log2], [^boost::static_signed_min], [^boost::static_signed_max], 
+[^boost::static_unsigned_min][^boost::static_unsigned_max], when available.
+* The argument type and the result type of [^boost::static_signed_min] etc are now typedef'd. 
+Formerly, they were hardcoded as [^unsigned long] and [^int] respectively. Please, use the 
+provided typedefs in new code (and update old code as soon as possible).
+
+[h4 1.32.0]
+
+* The argument type and the result type of [^boost::static_log2] are now typedef'd. 
+Formerly, they were hardcoded as [^unsigned long] and [^int] respectively. Please, use the 
+provided typedefs in new code (and update old code as soon as possible).
+
+[endsect]
+
Deleted: trunk/libs/integer/doc/integer_mask.html
==============================================================================
--- trunk/libs/integer/doc/integer_mask.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
+++ (empty file)
@@ -1,210 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<title>Integer Bit Mask Templates</title>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
-<h1><img src="../../../boost.png" alt="boost.png (6897 bytes)"
-align="middle" width="277" height="86">Integer Bit Mask Templates</h1>
-
-<p>The class templates in <cite><boost/integer/integer_mask.hpp></cite> provide bit masks for a certain bit position or a contiguous-bit pack of a certain size.  The types of the masking constants come from the integer type selection templates header.</p>
-
-<h2><a name="contents">Contents</a></h2>
-
-<ul>
-	<li>Contents</li>
-	<li>Synopsis</li>
-	<li>Single Bit-Mask Class Template</li>
-	<li>Group Bit-Mask Class Template</li>
-	<li>Example</li>
-	<li>Demonstration Program</li>
-	<li>Rationale</li>
-	<li>Credits</li>
-</ul>
-
-<h2><a name="synopsis">Synopsis</a></h2>
-
-<blockquote><pre>
-#include <cstddef>  <i>// for std::size_t</i>
-
-namespace boost
-{
-
-template < std::size_t Bit >
-struct high_bit_mask_t
-{
-    typedef <em>implementation_supplied</em>  least;
-    typedef <em>implementation_supplied</em>   fast;
-
-    static const least  high_bit = <em>implementation_defined</em>;
-    static const fast   high_bit_fast = <em>implementation_defined</em>;
-
-    static const std::size_t  bit_position = Bit;
-
-};
-
-template < std::size_t Bits >
-struct low_bits_mask_t
-{
-    typedef <em>implementation_supplied</em>  least;
-    typedef <em>implementation_supplied</em>   fast;
-
-    static const least  sig_bits = <em>implementation_defined</em>;
-    static const fast   sig_bits_fast = <em>implementation_defined</em>;
-
-    static const std::size_t  bit_count = Bits;
-
-};
-
-// Specializations for low_bits_mask_t exist for certain bit counts.
-
-}  // namespace boost
-</pre></blockquote>
-
-<h2><a name="single">Single Bit-Mask Class Template</a></h2>
-
-<p>The <code>boost::high_bit_mask_t</code> class template provides
-constants for bit masks representing the bit at a certain position.  The
-masks are equivalent to the value 2<sup><code>Bit</code></sup>, where
-<code>Bit</code> is the template parameter.  The bit position must be a
-nonnegative number from zero to <i>Max</i>, where <dfn>Max</dfn> is one
-less than the number of bits supported by the largest unsigned built-in
-integral type.  The following table describes the members of an
-instantiation of <code>high_bit_mask_t</code>.</p>
-
-<table border="1" cellpadding="5">
-	<caption>Members of the <code>boost::high_bit_mask_t</code> Class
-		Template</caption>
-	<tr>
-		<th>Member</th>
-		<th>Meaning</th>
-	</tr>
-	<tr>
-		<td><code>least</code></td>
-		<td>The smallest unsigned built-in type that supports the given
-			bit position.</td>
-	</tr>
-	<tr>
-		<td><code>fast</code></td>
-		<td>The quick-to-manipulate analog of <code>least</code>.</td>
-	</tr>
-	<tr>
-		<td><code>high_bit</code></td>
-		<td>A <code>least</code> constant of the desired bit-masking
-			value.</td>
-	</tr>
-	<tr>
-		<td><code>high_bit_fast</code></td>
-		<td>A <code>fast</code> analog of <code>high_bit</code>.</td>
-	</tr>
-	<tr>
-		<td><code>bit_position</code></td>
-		<td>The value of the template parameter, in case its needed from
-			a renamed instantiation of the class template.</td>
-	</tr>
-</table>
-
-<h2><a name="group">Group Bit-Mask Class Template</a></h2>
-
-<p>The <code>boost::low_bits_mask_t</code> class template provides
-constants for bit masks representing the lowest bits of a certain
-amount.  The masks are equivalent to the value
-(2<sup><code>Bits</code></sup> - 1), where <code>Bits</code> is the
-template parameter.  The bit amount must be a nonnegative number from
-zero to <i>Max</i>, where <dfn>Max</dfn> is the number of bits supported
-by the largest unsigned built-in integral type.  The following table
-describes the members of an instantiation of
-<code>low_bits_mask_t</code>.</p>
-
-<table border="1" cellpadding="5">
-	<caption>Members of the <code>boost::low_bits_mask_t</code> Class
-		Template</caption>
-	<tr>
-		<th>Member</th>
-		<th>Meaning</th>
-	</tr>
-	<tr>
-		<td><code>least</code></td>
-		<td>The smallest unsigned built-in type that supports the given
-			bit count.</td>
-	</tr>
-	<tr>
-		<td><code>fast</code></td>
-		<td>The quick-to-manipulate analog of <code>least</code>.</td>
-	</tr>
-	<tr>
-		<td><code>sig_bits</code></td>
-		<td>A <code>least</code> constant of the desired bit-masking
-			value.</td>
-	</tr>
-	<tr>
-		<td><code>sig_bits_fast</code></td>
-		<td>A <code>fast</code> analog of <code>sig_bits</code>.</td>
-	</tr>
-	<tr>
-		<td><code>bit_count</code></td>
-		<td>The value of the template parameter, in case its needed from
-			a renamed instantiation of the class template.</td>
-	</tr>
-</table>
-
-<p><strong>Implementation Note</strong><br>
-When <code>Bits</code> is the exact size of a built-in unsigned type,
-the implementation has to change to prevent undefined behavior. 
-Therefore, there are specializations of <code>low_bits_mask_t</code> at
-those bit counts.</p>
-
-<h2><a name="example">Example</a></h2>
-
-<blockquote><pre>
-#include <boost/integer/integer_mask.hpp>
-
-//...
-
-int main()
-{
-    typedef boost::high_bit_mask_t<29>  mask1_type;
-    typedef boost::low_bits_mask_t<15>  mask2_type;
-
-    mask1_type::least  my_var1;
-    mask2_type::fast   my_var2;
-    //...
-
-    my_var1 |= mask1_type::high_bit;
-    my_var2 &= mask2_type::sig_bits_fast;
-
-    //...
-}
-</pre></blockquote>
-
-<h2><a name="demo">Demonstration Program</a></h2>
-
-<p>The program integer_mask_test.cpp
-is a simplistic demonstration of the results from instantiating various
-examples of the bit mask class templates.</p>
-
-<h2><a name="rationale">Rationale</a></h2>
-
-<p>The class templates in this header are an extension of the <a
-href="../integer.htm">integer type selection class templates</a>.  The new
-class templates provide the same sized types, but also convienent masks
-to use when extracting the highest or all the significant bits when the
-containing built-in type contains more bits.  This prevents
-contaimination of values by the higher, unused bits.</p>
-
-<h2><a name="credits">Credits</a></h2>
-
-<p>The author of the Boost bit mask class templates is <a
-href="http://www.boost.org/people/daryle_walker.html">Daryle Walker</a>.</p>
-
-<hr>
-
-<p>Revised September 23, 2001</p>
-
-<p>© Copyright Daryle Walker 2001.  Use, modification, and distribution are
-subject to the Boost Software License, Version 1.0.  (See accompanying file <a
-href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at <<a
-href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>>.)</p>
-</body>
-</html>
Deleted: trunk/libs/integer/doc/static_log2.html
==============================================================================
--- trunk/libs/integer/doc/static_log2.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
+++ (empty file)
@@ -1,215 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-
-<html>
-
-<head>
-
-<title>Binary Logarithm Template</title>
-
-</head>
-
-
-
-<body bgcolor="white" text="black">
-
-<h1><img src="../../../boost.png" alt="boost.png (6897 bytes)"
-align="middle" width="277" height="86">Binary Logarithm Template</h1>
-
-
-<p>The class template in <cite><boost/integer/static_log2.hpp></cite> determines the position of the highest bit in a given value.  This facility is useful for solving generic programming problems.</p>
-
-
-
-<h2><a name="contents">Contents</a></h2>
-
-
-<ul>
-
-	<li>Contents</li>
-
-	<li>Synopsis</li>
-
-	<li>Usage</li>
-
-	<li>Example</li>
-
-	<li>Demonstration Program</li>
-
-	<li>Rationale</li>
-
-	<li>Credits</li>
-
-	<li>What's new</li>
-
-</ul>
-
-
-
-<h2><a name="synopsis">Synopsis</a></h2>
-
-
-
-<blockquote><pre>
-
-namespace boost
-{
-
-  typedef <em>implementation-defined</em> static_log2_argument_type;
-  typedef <em>implementation-defined</em> static_log2_result_type;
-
-  template < static_log2_argument_type arg >
-  struct static_log2
-  {
-    static const static_log2_result_type value = <em>implementation-defined</em>;
-  };
-
-
-  template < >
-  struct static_log2< 0 >
-  {
-    // The logarithm of zero is undefined.
-  };
-
-
-}  // namespace boost
-
-</pre></blockquote>
-
-
-
-
-<h2><a name="usage">Usage</a></h2>
-
-
-
-<p>The <code>boost::static_log2</code> class template takes one template
-parameter, a value of type <code>static_log2_argument_type</code>. The template
-only defines one member, <code>value</code>, which gives the truncated
-base-two logarithm of the template argument.</p>
-
-<p>Since the logarithm of zero, for any base, is undefined, there is a
-specialization of <code>static_log2</code> for a template argument
-of zero.  This specialization has no members, so an attempt to use
-the base-two logarithm of zero results in a compile-time error.</p>
-
-<p>Note: <ul>
-
-         <li><code>static_log2_argument_type</code> is an <i>unsigned integer
-         type</i> (C++ standard, 3.9.1p3).</li>
-
-         <li><code>static_log2_result_type</code> is an <i>integer type</i>
-                 (C++ standard, 3.9.1p7).</li>
-
-                 </ul>
-
-
-
-<h2><a name="example">Example</a></h2>
-
-
-
-<blockquote><pre>
-
-#include "boost/integer/static_log2.hpp"
-
-
-template < boost::static_log2_argument_type value >
-bool is_it_what()
-{
-    typedef boost::static_log2<value>  lb_type;
-
-    int  temp = lb_type::value;
-    //...
-    return (temp % 2) != 0;
-}
-
-//...
-
-int main()
-{
-    bool  temp = is_it_what<2000>();
-    //...
-# if 0
-    temp = is_it_what<0>();  // would give an error
-# endif
-    //...
-    temp = is_it_what<24>();
-    //...
-}
-
-</pre></blockquote>
-
-
-
-<h2><a name="demo">Demonstration Program</a></h2>
-
-
-
-<p>The program static_log2_test.cpp
-is a simplistic demonstration of the results from instantiating various
-examples of the binary logarithm class template.</p>
-
-
-
-<h2><a name="rationale">Rationale</a></h2>
-
-
-
-<p>The base-two (binary) logarithm, abbreviated <dfn>lb</dfn>, function
-is occasionally used to give order-estimates of computer algorithms.
-The truncated logarithm can be considered the highest power-of-two in a
-value, which corresponds to the value's highest set bit (for binary
-integers).  Sometimes the highest-bit position could be used in generic
-programming, which requires the position to be statically (<i>i.e.</i>
-at compile-time) available.</p>
-
-
-
-<h2><a name="whatsnew">Changes from previous versions:</a></h2>
-
-
-
-<ul>
-<li><i>New in version 1.32.0:</i><br><br>
-
-The argument type and the result type of <code>boost::static_log2</code>
-are now typedef'd. Formerly, they were hardcoded as <code>unsigned long</code>
-and <code>int</code> respectively. Please, use the provided typedefs in new
-code (and update old code as soon as possible).
-</li>
-</ul>
-
-
-
-<h2><a name="credits">Credits</a></h2>
-
-
-
-<p>The original version of the Boost binary logarithm class template was
-written by Daryle Walker
-and then enhanced by Giovanni Bajo with support for compilers without
-partial template specialization. The current version was suggested,
-together with a reference implementation, by Vesa Karvonen. Gennaro Prota
-wrote the actual source file.
-</p>
-
-<hr>
-
-
-
-<p>Revised July 19, 2004</p>
-
-          <p>© Copyright Daryle Walker 2001.<br>
-             © Copyright Gennaro Prota 2004.</p>
-
-     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">
-            http://www.boost.org/LICENSE_1_0.txt>)
-
-<br>
-
-</body>
-
-</html>
-
Deleted: trunk/libs/integer/doc/static_min_max.html
==============================================================================
--- trunk/libs/integer/doc/static_min_max.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
+++ (empty file)
@@ -1,120 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<title>Compile-Time Extrema Templates</title>
-</head>
-
-<body bgcolor="white" text="black" link="blue" alink="red" vlink="purple">
-<h1><img src="../../../boost.png" alt="boost.png (6897 bytes)"
-align="middle" width="277" height="86">Compile-Time Extrema
-Templates</h1>
-
-<p>The class templates in <cite><a
-href="../../../boost/integer/static_min_max.hpp"><boost/integer/static_min_max.hpp></a></cite>
-provide a compile-time evaluation of the minimum or maximum of
-two integers.  These facilities are useful for generic programming problems.</p>
-
-<h2><a name="contents">Contents</a></h2>
-
-<ul>
-	<li>Contents</li>
-	<li>Synopsis</li>
-	<li>Usage</li>
-	<li>Example</li>
-	<li>Demonstration Program</li>
-	<li>Rationale</li>
-	<li>Credits</li>
-</ul>
-
-<h2><a name="synopsis">Synopsis</a></h2>
-
-<blockquote><pre>
-namespace boost
-{
-
-template < long Value1, long Value2 >
-    struct static_signed_min;
-
-template < long Value1, long Value2 >
-    struct static_signed_max;
-
-template < unsigned long Value1, unsigned long Value2 >
-    struct static_unsigned_min;
-
-template < unsigned long Value1, unsigned long Value2 >
-    struct static_unsigned_max;
-
-}
-</pre></blockquote>
-
-<h2><a name="usage">Usage</a></h2>
-
-<p>The four class templates provide the combinations for finding the
-minimum or maximum of two signed or <code>unsigned</code>
-(<code>long</code>) parameters, <var>Value1</var> and <var>Value2</var>,
-at compile-time.  Each template has a single static data member,
-<code>value</code>, which is set to the respective minimum or maximum
-of the template's parameters.</p>
-
-<h2><a name="example">Example</a></h2>
-
-<blockquote><pre>
-#include <boost/integer/static_min_max.hpp>
-
-template < unsigned long AddendSize1, unsigned long AddendSize2 >
-class adder
-{
-public:
-    static  unsigned long  const  addend1_size = AddendSize1;
-    static  unsigned long  const  addend2_size = AddendSize2;
-    static  unsigned long  const  sum_size = boost::static_unsigned_max<AddendSize1, AddendSize2>::value + 1;
-
-    typedef int  addend1_type[ addend1_size ];
-    typedef int  addend2_type[ addend2_size ];
-    typedef int  sum_type[ sum_size ];
-
-    void  operator ()( addend1_type const &a1, addend2_type const &a2, sum_type &s ) const;
-};
-
-//...
-
-int main()
-{
-    int const   a1[] = { 0, 4, 3 };  // 340
-    int const   a2[] = { 9, 8 };     //  89
-    int         s[ 4 ];
-    adder<3,2>  obj;
-
-    obj( a1, a2, s );  // 's' should be 429 or { 9, 2, 4, 0 }
-    //...
-}
-</pre></blockquote>
-
-<h2><a name="demo">Demonstration Program</a></h2>
-
-<p>The program <a
-href="../test/static_min_max_test.cpp">static_min_max_test.cpp</a> is a
-simplistic demonstration of various comparisons using the compile-time
-extrema class templates.</p>
-
-<h2><a name="rationale">Rationale</a></h2>
-
-<p>Sometimes the minimum or maximum of several values needs to be found
-for later compile-time processing, <i>e.g.</i> for a bound for another
-class template.</p>
-
-<h2><a name="credits">Credits</a></h2>
-
-<p>The author of the Boost compile-time extrema class templates is <a
-href="http://www.boost.org/people/daryle_walker.html">Daryle Walker</a>.</p>
-
-<hr>
-
-<p>Revised October 12, 2001</p>
-
-<p>© Copyright Daryle Walker 2001.  Use, modification, and distribution are
-subject to the Boost Software License, Version 1.0.  (See accompanying file <a
-href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at <<a
-href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>>.)</p>
-</body>
-</html>
Modified: trunk/libs/integer/index.html
==============================================================================
--- trunk/libs/integer/index.html	(original)
+++ trunk/libs/integer/index.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
@@ -1,148 +1,16 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
 <html>
 <head>
-<title>Boost Integer Library</title>
+<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
 </head>
+<body>
+Automatic redirection failed, please go to
+doc/html/index.html.
+      <P>Copyright Beman Dawes, Daryle Walker, Gennaro Prota and John Maddock 2001-2009</P>
+      <P>Distributed under the Boost Software License, Version 1.0. (See accompanying file <A href="../../LICENSE_1_0.txt">
+            LICENSE_1_0.txt</A> or copy at www.boost.org/LICENSE_1_0.txt).</P>
+</body>
+</html>
 
-<body bgcolor="white" text="black">
-<table border="1" bgcolor="teal" cellpadding="2">
-	<tr>
-		<td bgcolor="white"><img src="../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
-		<td>Home</td>
-		<td>Libraries</td>
-		<td>People</td>
-		<td>FAQ</td>
-		<td>More</td>
-	</tr>
-</table>
-
-<h1>Boost Integer Library</h1>
-
-<table border="1" cellpadding="5">
-	<tr>
-		<th>Header / Docs</th>
-		<th>Contents</th>
-		<th>Use</th>
-	</tr>
-	<tr>
-		<td align="center"><cite><boost/integer_fwd.hpp></cite></td>
-		<td valign="top">Forward declarations of classes and class templates</td>
-		<td valign="top">When just the name of a class is needed</td>
-	</tr>
-	<tr>
-		<td align="center"><code><a href="../../boost/cstdint.hpp"><boost/cstdint.hpp><br>
-      </a></code><a href="cstdint.htm"><br>
-      documentation</a>
-    </td>
-		<td valign="top">Typedef's based on the 1999 C Standard header <<code>stdint.h></code>, wrapped in namespace boost.
-      This implementation may #include the compiler
-      supplied <<code>stdint.h></code>, if present.  </td>
-		<td valign="top">Supplies typedefs for standard integer types such as <code> int32_t</code> or <code>uint_least16_t</code>.
-      Use in preference to <<code>stdint.h></code>
-      for enhanced portability.  Furthermore, all names are safely placed in the boost namespace.</td>
-	</tr>
-	<tr>
-		<td align="center"><code><boost/integer_traits.hpp></code><br>
-    <br>
-    documentation
-    </td>
-		<td valign="top">Template class <code>boost::integer_traits</code>, derived from <code>std::numeric_limits</code>. 
-      Adds <code>const_min</code> and <code>const_max</code> members.</td>
-		<td valign="top">Use to obtain the characteristics of a known integer type.</td>
-	</tr>
-	<tr>
-		<td align="center"><code><boost/integer.hpp><br>
-      <br>
-      </code>documentation</td>
-		<td valign="top">Templates for integer type selection based on properties such as
-      maximum value or number of bits.</td>
-		<td valign="top">Use to select the type an integer when some property such as maximum value or number of bits is known.
-      Useful for generic programming. </td>
-	</tr>
-	<tr>
-		<td align="center"><code><boost/integer/integer_mask.hpp><br>
-      <br>
-      </code>documentation</td>
-		<td valign="top">Templates for the selection of integer masks, single or lowest group, based on the number of bits.</td>
-		<td valign="top">Use to select a particular mask when the bit position(s) are based on a compile-time variable.
-      Useful for generic programming. </td>
-	</tr>
-	<tr>
-		<td align="center"><code><boost/integer/static_log2.hpp><br>
-      <br>
-      </code>documentation</td>
-		<td valign="top">Template for finding the highest power of two in a number.</td>
-		<td valign="top">Use to find the bit-size/range based on a maximum value.
-      Useful for generic programming. </td>
-	</tr>
-	<tr>
-		<td align="center"><code><boost/integer/static_min_max.hpp><br>
-      <br>
-      </code>documentation</td>
-		<td valign="top">Templates for finding the extrema of two numbers.</td>
-		<td valign="top">Use to find a bound based on a minimum or maximum value.
-      Useful for generic programming. </td>
-	</tr>
-</table>
-
-<h2>Rationale</h2>
-
-<p>The organization of boost integer headers and classes is designed to
-take advantage of <cite><stdint.h></cite> types from the 1999 C
-standard without resorting to undefined behavior in terms of the 1998
-C++ standard.  The header <cite><boost/cstdint.hpp></cite> makes
-the standard integer types safely available in namespace
-<code>boost</code> without placing any names in namespace
-<code>std</code>.  As always, the intension is to complement rather than
-compete with the C++ Standard Library.  Should some future C++ standard
-include <cite><stdint.h></cite> and <cite><cstdint></cite>,
-then <cite><boost/cstdint.hpp></cite> will continue to function,
-but will become redundant and may be safely deprecated.</p>
-
-<p>Because these are boost headers, their names conform to boost header
-naming conventions rather than C++ Standard Library header naming
-conventions.</p>
-
-<h2><i>Caveat emptor</i></h2>
-
-<p>As an implementation artifact, certain C
-<cite><limits.h></cite> macro names may possibly be visible to
-users of <cite><boost/cstdint.hpp></cite>.  Don't use these
-macros; they are not part of any Boost-specified interface.  Use
-<code>boost::integer_traits<></code> or
-<code>std::numeric_limits<></code> instead.</p>
-
-<p>As another implementation artifact, certain C
-<cite><stdint.h></cite> typedef names may possibly be visible in
-the global namespace to users of <cite><boost/cstdint.hpp></cite>.
- Don't use these names, they are not part of any Boost-specified
-interface.  Use the respective names in namespace <code>boost</code>
-instead.</p>
-
-   <h2>
-      <i>History</i>
-   </h2>
-
-   <p>
-      Reverted Trunk to release branch state (i.e. a "known good state"), Nov 2009.  Then fixed issues:
-      653,
-      3084,
-      3177,
-      3180,
-      3568,
-      3657,
-      2134,
-</p>
-   
-   <hr>
-
-<p>Revised: <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %b %Y" startspan -->06 Nov 2007<!--webbot bot="Timestamp" endspan i-checksum="15272" -->
-</p>
 
-<p>© Copyright Beman Dawes 2003</p>
 
-<p>Distributed under the Boost Software License, Version 1.0. See
-www.boost.org/LICENSE_1_0.txt</p>
 
-</body>
-</html>
\ No newline at end of file
Deleted: trunk/libs/integer/integer.htm
==============================================================================
--- trunk/libs/integer/integer.htm	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
+++ (empty file)
@@ -1,212 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<html>
-<head>
-<title>Integer Type Selection Templates</title>
-</head>
-
-<body bgcolor="white" text="black">
-<h1>
-<img src="../../boost.png" alt="boost.png (6897 bytes)"
-align="middle" width="277" height="86">Integer Type Selection
-Templates</h1>
-
-<p>The <cite><a
-href="../../boost/integer.hpp"><boost/integer.hpp></a></cite> type
-selection templates allow integer types to be selected based on desired
-characteristics such as number of bits or maximum value.  This facility
-is particularly useful for solving generic programming problems.</p>
-
-<h2><a name="contents">Contents</a></h2>
-
-<ul>
-	<li>Contents</li>
-	<li>Synopsis</li>
-	<li>Easiest-to-Manipulate Types</li>
-	<li>Sized Types</li>
-	<li>Example</li>
-	<li>Demonstration Program</li>
-	<li>Rationale</li>
-	<li>Alternative</li>
-	<li>Credits</li>
-</ul>
-
-<h2><a name="synopsis">Synopsis</a></h2>
-
-<blockquote><pre>namespace boost
-{
-  //  fast integers from least integers
-  template< typename LeastInt >
-  struct int_fast_t
-  {
-      typedef <em>implementation_supplied</em>  fast;
-  };
-
-  //  signed
-  template< int Bits >
-  struct int_t 
-  {
-      typedef <em>implementation_supplied</em>  least;
-      typedef int_fast_t<least>::fast  fast;
-  };
-
-  //  unsigned
-  template< int Bits >
-  struct uint_t 
-  {
-      typedef <em>implementation_supplied</em>  least;
-      typedef int_fast_t<least>::fast  fast;
-  };
-
-  //  signed
-  template< long long MaxValue >
-  struct int_max_value_t 
-  {
-      typedef <em>implementation_supplied</em>  least;
-      typedef int_fast_t<least>::fast  fast;
-  };
-
-  template< long long MinValue >
-  struct int_min_value_t 
-  {
-      typedef <em>implementation_supplied</em>  least;
-      typedef int_fast_t<least>::fast  fast;
-  };
-
-  //  unsigned
-  template< unsigned long long Value >
-  struct uint_value_t 
-  {
-      typedef <em>implementation_supplied</em>  least;
-      typedef int_fast_t<least>::fast  fast;
-  };
-} // namespace boost
-</pre></blockquote>
-
-<h2><a name="easy">Easiest-to-Manipulate Types</a></h2>
-
-<p>The <code>int_fast_t</code> class template maps its input type to the
-next-largest type that the processor can manipulate the easiest, or to
-itself if the input type is already an easy-to-manipulate type.  For
-instance, processing a bunch of <code>char</code> objects may go faster
-if they were converted to <code>int</code> objects before processing. 
-The input type, passed as the only template parameter, must be a
-built-in integral type, except <code>bool</code>.  Unsigned integral
-types can be used, as well as signed integral types, despite the name. 
-The output type is given as the class member <code>fast</code>.</p>
-
-<p><strong>Implementation Notes</strong><br>
-By default, the output type is identical to the input type.  Eventually,
-this code's implementation should be conditionalized for each platform
-to give accurate mappings between the built-in types and the
-easiest-to-manipulate built-in types.  Also, there is no guarantee that
-the output type actually is easier to manipulate than the input
-type.</p>
-
-<h2><a name="sized">Sized Types</a></h2>
-
-<p>The <code>int_t</code>, <code>uint_t</code>,
-<code>int_max_value_t</code>, <code>int_min_value_t</code>, and
-<code>uint_value_t</code> class templates find the most appropiate
-built-in integral type for the given template parameter.  This type is
-given by the class member <code>least</code>.  The easiest-to-manipulate
-version of that type is given by the class member <code>fast</code>. 
-The following table describes each template's criteria.</p>
-
-<table border="1" cellpadding="5">
-	<caption>Criteria for the Sized Type Class Templates</caption>
-	<tr>
-		<th>Class Template</th>
-		<th>Template Parameter Mapping</th>
-	</tr>
-	<tr>
-		<td><code>boost::int_t</code></td>
-		<td>The smallest built-in signed integral type with at least the
-			given number of bits, including the sign bit.  The parameter
-			should be a positive number.  A compile-time error results if
-			the parameter is larger than the number of bits in a
-			<code>long</code>.</td>
-	</tr>
-	<tr>
-		<td><code>boost::uint_t</code></td>
-		<td>The smallest built-in unsigned integral type with at least
-			the given number of bits.  The parameter should be a positive
-			number.  A compile-time error results if the parameter is
-			larger than the number of bits in an <code>unsigned
-			long</code>.</td>
-	</tr>
-	<tr>
-		<td><code>boost::int_max_value_t</code></td>
-		<td>The smallest built-in signed integral type that supports the
-			given value as a maximum.  The parameter should be a
-			positive number.</td>
-	</tr>
-	<tr>
-		<td><code>boost::int_min_value_t</code></td>
-		<td>The smallest built-in signed integral type that supports the
-			given value as a minimum.  The parameter should be a
-			negative number.</td>
-	</tr>
-	<tr>
-		<td><code>boost::uint_value_t</code></td>
-		<td>The smallest built-in unsigned integral type that supports
-			the given value as a maximum.  The parameter should be a
-			positive number.</td>
-	</tr>
-</table>
-
-<h2><a name="example">Example</a></h2>
-
-<blockquote><pre>#include <boost/integer.hpp>
-
-//...
-
-int main()
-{
-    boost::int_t<24>::least my_var;
-    //...
-}
-</pre></blockquote>
-
-<h2><a name="demo">Demonstration Program</a></h2>
-
-<p>The program integer_test.cpp is a
-simplistic demonstration of the results from instantiating various
-examples of the sized type class templates.</p>
-
-<h2><a name="rationale">Rationale</a></h2>
-
-<p>The rationale for the design of the templates in this header includes:</p>
-
-<ul>
-	<li>Avoid recursion because of concern about C++'s limited
-		guaranteed recursion depth (17).</li>
-	<li>Avoid macros on general principles.</li>
-	<li>Try to keep the design as simple as possible.</li>
-</ul>
-
-<h2><a name="alternative">Alternative</a></h2>
-
-<p>If the number of bits required is known beforehand, it may be more
-appropriate to use the types supplied in <cite><a
-href="../../boost/cstdint.hpp"><boost/cstdint.hpp></a></cite>.</p>
-
-<h2><a name="credits">Credits</a></h2>
-
-<p>The author of most of the Boost integer type choosing templates is <a
-href="http://www.boost.org/people/beman_dawes.html">Beman Dawes</a>.  He gives thanks
-to Valentin Bonnard and
- Kevlin Henney for sharing
-their designs for similar templates.  <a
-href="http://www.boost.org/people/daryle_walker.html">Daryle Walker</a> designed the
-value-based sized templates.</p>
-
-<hr>
-
-<p>Revised May 20, 2001</p>
-
-<p>© Copyright Beman Dawes 1999.  Use, modification, and distribution are
-subject to the Boost Software License, Version 1.0.  (See accompanying file <a
-href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at <<a
-href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>>.)</p>
-</body>
-</html>
Deleted: trunk/libs/integer/integer_traits.html
==============================================================================
--- trunk/libs/integer/integer_traits.html	2009-11-25 07:38:09 EST (Wed, 25 Nov 2009)
+++ (empty file)
@@ -1,94 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-
-<title>integer_traits: Compile-Time Limits for Integral Types</title>
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-
-<h1><img src="../../boost.png" alt="boost.png (6897 bytes)" align="center" width="277" height="86">Compile-Time Integral
-Type Limits</h1>
-
-<p>
-The C++ Standard Library <limits> header supplies a class template
-numeric_limits<> with specializations for each fundamental
-type.</p>
-<p>
-For integer types, the interesting members of std::numeric_limits<> are:
-<pre>   static const bool is_specialized; // will be true for integers
-   static T min() throw();
-   static T max() throw();
-   static const int digits;     // for integers, # value bits
-   static const int digits10;     
-   static const bool is_signed;
-   static const bool is_integer; // will be true for integers</pre>
-For many uses, these are sufficient.  But min() and max() are problematical because they are not constant expressions
-(std::5.19), yet some usages require constant expressions.
-<p>
-The template class <code>integer_traits</code> addresses this
-problem.
-
-
-<h2>Header <code>integer_traits.hpp</code> Synopsis</h2>
-
-<pre>namespace boost {
-  template<class T>
-  class integer_traits : public std::numeric_limits<T>
-  {
-    static const bool is_integral = false;
-  };
-
-  // specializations for all integral types
-}</pre>
-
-
-<h2>Description</h2>
-
-Template class <code>integer_traits</code> is derived from
-<code>std::numeric_limits</code>.  In general, it adds the single
-<code>bool</code> member <code>is_integral</code> with the
-compile-time constant value <code>false</code>.  However, for all
-integral types <code>T</code> (std::3.9.1/7 [basic.fundamental]),
-there are specializations provided with the following compile-time
-constants defined:
-<p>
-<table border=1>
-<tr><th>member</th><th>type</th><th>value</th></tr>
-<tr><td><code>is_integral</code></td><td>bool</td><td><code>true</code></td></tr>
-<tr><td><code>const_min</code></td><td><code>T</code></td><td>equivalent
-to <code>std::numeric_limits<T>::min()</code></td></tr>
-<tr><td><code>const_max</code></td><td><code>T</code></td><td>equivalent
-to <code>std::numeric_limits<T>::max()</code></td></tr>
-</table>
-
-<p>
-
-<em>Note:</em> A flag <code>is_integral</code> is provided, because a
-user-defined integer class should specialize
-<code>std::numeric_limits<>::is_integer = true</code>,
-nonetheless compile-time constants <code>const_min</code> and
-<code>const_max</code> cannot be provided for that user-defined class.
-
-<h2>
-
-Test Program</h2>
-
-<p>
-
-The program <code>integer_traits_test.cpp</code>
-exercises the <code>integer_traits</code> class.
-
-<h2>Acknowledgements</h2>
-
-Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers discussed the integer
-traits idea on the boost mailing list in August 1999.
-<hr>
-<p>Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->06 November 2007<!--webbot bot="Timestamp" endspan i-checksum="40336" --></p>
-<p>© Copyright Beman Dawes 2000</p>
-
-<p>Distributed under the Boost Software License, Version 1.0. See
-www.boost.org/LICENSE_1_0.txt</p>
-