Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r62598 - in sandbox/SOC/2010/bit_masks/lib/integer/doc: . html html/bits_mask html/boost_integer_bits_masks_extension html/high_bits html/high_bits_mask html/integral_mask html/low_bits_mask html/rationale
From: bbartmanboost_at_[hidden]
Date: 2010-06-08 15:53:01


Author: bbartman
Date: 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
New Revision: 62598
URL: http://svn.boost.org/trac/boost/changeset/62598

Log:
working on adding my documentation into subversion

Added:
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bit_mask_purpose.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/high_bits.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/high_bits_maskbits.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/MASKNAME.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/standalone_HTML.manifest (contents, props changed)
Text files modified:
   sandbox/SOC/2010/bit_masks/lib/integer/doc/Jamfile.v2 | 6 +++---
   1 files changed, 3 insertions(+), 3 deletions(-)

Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/Jamfile.v2
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/Jamfile.v2 (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/Jamfile.v2 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -27,11 +27,11 @@
         # How far down we go with TOC's
         <xsl:param>generate.section.toc.level=4
         # Path for links to Boost:
- <xsl:param>boost.root=$(BOOST_ROOT)
+ <xsl:param>boost.root=../../../..
         # Path for libraries index:
- <xsl:param>boost.libraries=$(BOOST_ROOT)/libs/libraries.htm
+ <xsl:param>boost.libraries=../../../../libs/libraries.htm
         # Use the main Boost stylesheet:
- <xsl:param>html.stylesheet=$(BOOST_ROOT)/doc/html/boostbook.css
+ <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
         
         # PDF Options:
         # TOC Generation: this is needed for FOP-0.9 and later:

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,424 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>bits_mask</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../low_bits_mask/low_bits_mask.html" title="low_bits_mask">
+<link rel="next" href="../rationale/rationale.html" title="Rationale And Motivation">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../low_bits_mask/low_bits_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="../rationale/rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bits_mask.bits_mask"></a><a class="link" href="bits_mask.html" title="bits_mask"> bits_mask</a>
+</h2></div></div></div>
+<a name="bits_mask.bits_mask.description"></a><h4>
+<a name="id2936130"></a>
+ <a class="link" href="bits_mask.html#bits_mask.bits_mask.description">Description</a>
+ </h4>
+<p>
+ The <code class="computeroutput"><span class="identifier">bits_mask</span></code> template provides
+ an extention to the <code class="computeroutput"><span class="identifier">low_bits_mask</span></code>
+ template, by incorporating an <code class="computeroutput"><span class="identifier">Offset</span></code>
+ with the template. The <code class="computeroutput"><span class="identifier">offest</span></code>
+ is always relative to the right most bit, or bit 0. For a basic view of how
+ <code class="computeroutput"><span class="identifier">bits_mask</span></code> works consider the
+ following examples:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+<span class="comment">// mask::value has the following binary value
+</span><span class="comment">// 0000 0000 0000 0000 0001 1100 0000 0000
+</span></pre>
+<p>
+ For simplicity there is a defualt parameter for <code class="computeroutput"><span class="identifier">Width</span></code>
+ giving it a value of <code class="computeroutput"><span class="number">1</span></code>. This makes
+ writing of normally left or right shift masks simple and staticly checkable.
+ For example,
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// If one would need to create a mask for checking the 11th bit within an
+</span><span class="comment">// integer it can be done simple with the following mask
+</span><span class="keyword">typedef</span> <span class="identifier">bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">11</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+<span class="comment">// this creates a mask at the 11th bit within an integer.
+</span></pre>
+<p>
+ </p>
+<p>
+ The <code class="computeroutput"><span class="identifier">bits_mask</span></code> template is located
+ in the &lt;boost/integer/bits_mask.hpp&gt; header file.
+ </p>
+<a name="bits_mask.bits_mask.template_signature"></a><h4>
+<a name="id2936370"></a>
+ <a class="link" href="bits_mask.html#bits_mask.bits_mask.template_signature">Template Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">bits_mask</span></code> has the following
+ template signature:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">Offset</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">Width</span> <span class="special">=</span> <span class="number">1</span> <span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">bits_mask</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Is an integral type which the mask is to be created over.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Offset</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is the number of bits which is used for a left shift of the
+ <code class="computeroutput"><span class="identifier">width</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is the width of the mask in bits.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="bits_mask.bits_mask.interface"></a><h4>
+<a name="id2936618"></a>
+ <a class="link" href="bits_mask.html#bits_mask.bits_mask.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">TYPENAME</span></code> Compile time interface.
+ Assume that N is of type <code class="computeroutput"><span class="identifier">N</span> <span class="identifier">TYPE</span></code> the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the integral value associated with the <code class="computeroutput"><span class="identifier">width</span></code>
+ template parameter.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">offset</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the integral value associated with the <code class="computeroutput"><span class="identifier">Offset</span></code>
+ template parameter.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature <code class="computeroutput"><span class="identifier">constexper</span></code>
+ this function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="bits_mask.bits_mask.preconditions"></a><h4>
+<a name="id2936982"></a>
+ <a class="link" href="bits_mask.html#bits_mask.bits_mask.preconditions">Preconditions</a>
+ </h4>
+<p>
+ Preconditions associated with the <code class="computeroutput"><span class="identifier">bits_mask</span></code>
+ template. There are two types of precondtions ones which are only documented
+ and ones which are both enforced and documented. Preconditions will specify
+ which are which within the documentation. All of the preconditions will document
+ how they are enforced when they are enforced.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Precondition
+ </p>
+ </th>
+<th>
+ <p>
+ Reasoning
+ </p>
+ </th>
+<th>
+ <p>
+ Enforcement
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">(</span><span class="identifier">Offset</span>
+ <span class="special">+</span> <span class="identifier">Width</span><span class="special">)</span> <span class="special">&lt;</span> <span class="special">(</span> <span class="identifier">bit_width</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
+ <span class="special">-</span> <span class="number">1</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ It will cause overflow if the width plus the offset is greater then
+ total width of the type in bits.
+ </p>
+ </td>
+<td>
+ <p>
+ Enforced by <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Width</span> <span class="special">&gt;</span>
+ <span class="number">0</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This would create an empty mask, which won't do anything.
+ </p>
+ </td>
+<td>
+ <p>
+ Enfoced by the domain of the <code class="computeroutput"><span class="identifier">Width</span></code>
+ template parameter which is an <code class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">int</span></code>, which prevents the value
+ from being negative, and by <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span></code>,
+ which prevents the value from being zero.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code> must satisfy the
+ <code class="computeroutput"><span class="identifier">is_integral</span></code> type
+ trait.
+ </p>
+ </td>
+<td>
+ <p>
+ The <code class="computeroutput"><span class="identifier">bits_mask</span></code> template
+ has only been tested with integral types.
+ </p>
+ </td>
+<td>
+ <p>
+ This is only a documented precondition.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="bits_mask.bits_mask.examples"></a><h4>
+<a name="id2937301"></a>
+ <a class="link" href="bits_mask.html#bits_mask.bits_mask.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">bits_mask</span></code>
+ template.
+ </p>
+<p>
+ Example:
+ </p>
+<p>
+ Single bit mask using the default parameter for width.
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bits_mask</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="number">0</span> <span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+<span class="comment">// mask in this case has the following value
+</span><span class="comment">// 0000 0000 0000 0000 0000 0000 0000 0001
+</span>
+<span class="keyword">int</span> <span class="identifier">some_bit_value</span> <span class="special">=</span> <span class="number">0xdeadbeef</span><span class="special">;</span>
+
+<span class="comment">// now testing to see if the zero bit is set in some_bit_value
+</span><span class="keyword">if</span><span class="special">(</span><span class="identifier">some_bit_value</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">()</span> <span class="special">)</span> <span class="special">{</span>
+ <span class="special">...</span>
+ <span class="keyword">true</span> <span class="keyword">case</span>
+ <span class="special">...</span>
+<span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+ <span class="special">...</span>
+ <span class="keyword">false</span> <span class="keyword">case</span>
+ <span class="special">...</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Here is another case where the <code class="computeroutput"><span class="identifier">bits_mask</span></code>
+ template is used used similar to a bit field. The goal in this case would be
+ to extract a single value from within an integral storage type, which may be
+ storing one or more values.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">3</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+<span class="comment">// binary value of mask
+</span><span class="comment">// 0000 0000 0000 0000 0001 1111 1111 1000
+</span>
+<span class="comment">// this will then be used to retrieve a value within an integer.
+</span><span class="keyword">int</span> <span class="identifier">some_bit_value</span> <span class="special">=</span> <span class="number">0xdeadbeef</span><span class="special">;</span>
+<span class="comment">// binary value of some_bit_value
+</span><span class="comment">// 1101 1110 1010 1011 1011 1110 1110 1111
+</span>
+<span class="comment">// now to extract the value from within some_bit_value
+</span><span class="keyword">int</span> <span class="identifier">new_int_value</span> <span class="special">=</span> <span class="special">(</span> <span class="identifier">some_bit_value</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">()</span> <span class="special">)</span> <span class="special">&gt;&gt;</span> <span class="identifier">mask</span><span class="special">::</span><span class="identifier">offset</span><span class="special">;</span>
+
+<span class="comment">// basic operations taking place.
+</span><span class="comment">// 1101 1110 1010 1011 1011 1110 1110 1111 &lt;- some_bit_value
+</span><span class="comment">// 0000 0000 0000 0000 0001 1111 1111 1000 &lt;- mask::value
+</span>
+<span class="comment">// preforming bitwise and operator.
+</span>
+<span class="comment">// 0000 0000 0000 0000 0001 1110 1110 1000 &lt;- result of bitwise and operator
+</span><span class="comment">// preform right shift operation.
+</span><span class="comment">// 0000 0000 0000 0000 0000 0011 1101 1101 &lt;- value of new_int_value.
+</span></pre>
+<p>
+ </p>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../low_bits_mask/low_bits_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="../rationale/rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bit_mask_purpose.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bit_mask_purpose.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Purpose</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="next" href="../integral_mask/integral_mask.html" title="integral_mask type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></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="../integral_mask/integral_mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_integer_bits_masks_extension.bit_mask_purpose"></a><a class="link" href="bit_mask_purpose.html" title="Purpose"> Purpose</a>
+</h2></div></div></div>
+<p>
+ The purpose of this library extension to the boost.integer library is to make
+ the creation of simple and complex integral masks simple and easy and constructable
+ on compile time. The structure of the masks are extensions of the type <code class="computeroutput"><span class="identifier">integral_constant</span></code> provided by boost.type_traits
+ library. All masks are able to be treated as the <code class="computeroutput"><span class="identifier">integral_constant</span></code>
+ type. All masks provide the following three compile time accessible features.
+ They all provide <code class="computeroutput"><span class="special">::</span><span class="identifier">type</span></code>,<code class="computeroutput"><span class="special">::</span><span class="identifier">value_type</span></code>
+ and <code class="computeroutput"><span class="special">::</span><span class="identifier">value</span></code>
+ for compile time support. This also means that all masks can be used with the
+ boost.mpl bitwise operator meta-functions for creation of more complex masks.
+ Now because these values were intended to be used during the runtime of a program
+ all of the masking types which are provided by this library provide an additional
+ functionality for run time support. All of the mask types in this library provide
+ the implicit cast operator allowing for the meta-function objects to be used
+ as if they were the integral value they were used to construct. For example,
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">integer</span><span class="special">/</span><span class="identifier">integral_mask</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span>
+
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">t</span> <span class="special">=</span> <span class="number">0xdeadbeef</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">integral_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;</span> <span class="identifier">mask_type</span><span class="special">;</span>
+
+ <span class="keyword">int</span> <span class="identifier">unmasked_t</span> <span class="special">=</span> <span class="identifier">t</span> <span class="special">&amp;</span> <span class="identifier">mask_type</span><span class="special">();</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ For the use of a mask all that one needs to do is to construct the mask and
+ simply treat it as though it were an integer.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ All masks are trivially default constructible and destructible.
+ </p></td></tr>
+</table></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 &#169; 2010 Brian Bartman<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="../integral_mask/integral_mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/high_bits.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/high_bits.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,242 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>high_bits</title>
+<link rel="stylesheet" href="..//home/brian/gsoc/boost-trunk/doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../integral_mask/integral_mask.html" title="integral_mask type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../integral_mask/integral_mask.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/home.png" alt="Home"></a>
+</div>
+<div class="section" title="high_bits">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="high_bits.high_bits"></a><a class="link" href="high_bits.html" title="high_bits"> high_bits</a>
+</h2></div></div></div>
+<a name="high_bits.high_bits.description"></a><h4>
+<a name="id3086886"></a>
+ <a class="link" href="high_bits.html#high_bits.high_bits.description">Description</a>
+ </h4>
+<p>
+ THe template <code class="computeroutput"><span class="identifier">high_bits</span></code> preforms
+ bitwise operations on compile time then exposes the newly created mask via
+ <code class="computeroutput"><span class="identifier">value</span></code> and <code class="computeroutput"><span class="keyword">operator</span>
+ <span class="identifier">T</span><span class="special">()</span></code>.
+ What <code class="computeroutput"><span class="identifier">high_bits</span></code> does is create
+ a mask inside your integral type which sets all bits starting from the left
+ most bit reaching out width bits to the right. For example,
+</p>
+<pre class="programlisting"><span class="comment">// using high bits to create a mask starting from the left most bit with a width
+</span><span class="comment">// of 15
+</span><span class="keyword">typedef</span> <span class="identifier">high_bits</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">15</span><span class="special">&gt;</span> <span class="identifier">bits</span><span class="special">;</span>
+<span class="comment">// bits::value will have the following value in binary.
+</span><span class="comment">// 1111 1111 1111 1110 0000 0000 0000 0000
+</span></pre>
+<p>
+ </p>
+<a name="high_bits.high_bits.template_signature"></a><h4>
+<a name="id3087022"></a>
+ <a class="link" href="high_bits.html#high_bits.high_bits.template_signature">Template Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">high_bits</span></code> has the following
+ template signature:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">Width</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">high_bits</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Is an integral type which the mask is to be created over.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is the width of the mask in bits.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="high_bits.high_bits.interface"></a><h4>
+<a name="id3087204"></a>
+ <a class="link" href="high_bits.html#high_bits.high_bits.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">high_bits</span></code> Compile time interface.
+ Assume that N is of type <code class="computeroutput"><span class="identifier">high_bits</span></code>
+ the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the integral value associated with the <code class="computeroutput"><span class="identifier">width</span></code>
+ template parameter.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature constexper this
+ function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="high_bits.high_bits.examples"></a><h4>
+<a name="id3087509"></a>
+ <a class="link" href="high_bits.html#high_bits.high_bits.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">high_bits</span></code>
+ type.
+ </p>
+<p>
+ Exaple:
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">high_bits</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">4</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+
+<span class="comment">// binary for mask::value
+</span><span class="comment">// 1111 0000 0000 0000 0000 0000 0000 0000
+</span>
+<span class="keyword">int</span> <span class="identifier">integral_value</span> <span class="special">=</span> <span class="number">0xc000000c</span><span class="special">;</span>
+
+<span class="comment">// integral_value's binary value
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 1100
+</span>
+<span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">integral_value</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">();</span>
+<span class="comment">// binary value of result
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 0000
+</span>
+</pre>
+<p>
+ </p>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../integral_mask/integral_mask.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/high_bits_maskbits.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits/high_bits_maskbits.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,240 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>high_bits_mask</title>
+<link rel="stylesheet" href="..//home/brian/gsoc/boost-trunk/doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../integral_mask/integral_mask.html" title="integral_mask type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../integral_mask/integral_mask.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/home.png" alt="Home"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="high_bits.high_bits_maskbits"></a><a class="link" href="high_bits_maskbits.html" title="high_bits_mask"> high_bits_mask</a>
+</h2></div></div></div>
+<a name="high_bits.high_bits_maskbits.description"></a><h4>
+<a name="id3321880"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits.high_bits_maskbits.description">Description</a>
+ </h4>
+<p>
+ THe template <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ preforms bitwise operations on compile time then exposes the newly created
+ mask via <code class="computeroutput"><span class="identifier">value</span></code> and <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>. What <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ does is create a mask inside your integral type which sets all bits starting
+ from the left most bit reaching out width bits to the right. For example,
+</p>
+<pre class="programlisting"><span class="comment">// using high bits to create a mask starting from the left most bit with a width
+</span><span class="comment">// of 15
+</span><span class="keyword">typedef</span> <span class="identifier">high_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">15</span><span class="special">&gt;</span> <span class="identifier">bits</span><span class="special">;</span>
+<span class="comment">// bits::value will have the following value in binary.
+</span><span class="comment">// 1111 1111 1111 1110 0000 0000 0000 0000
+</span></pre>
+<p>
+ </p>
+<a name="high_bits.high_bits_maskbits.template_signature"></a><h4>
+<a name="id3322017"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits.high_bits_maskbits.template_signature">Template Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> has the following
+ template signature:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">Width</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">high_bits_mask</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Is an integral type which the mask is to be created over.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is the width of the mask in bits.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="high_bits.high_bits_maskbits.interface"></a><h4>
+<a name="id3322198"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits.high_bits_maskbits.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> Compile time
+ interface. Assume that N is of type <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the integral value associated with the <code class="computeroutput"><span class="identifier">width</span></code>
+ template parameter.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature constexper this
+ function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="high_bits.high_bits_maskbits.examples"></a><h4>
+<a name="id3322503"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits.high_bits_maskbits.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ type.
+ </p>
+<p>
+ Exaple:
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">high_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">4</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+
+<span class="comment">// binary for mask::value
+</span><span class="comment">// 1111 0000 0000 0000 0000 0000 0000 0000
+</span>
+<span class="keyword">int</span> <span class="identifier">integral_value</span> <span class="special">=</span> <span class="number">0xc000000c</span><span class="special">;</span>
+
+<span class="comment">// integral_value's binary value
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 1100
+</span>
+<span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">integral_value</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">();</span>
+<span class="comment">// binary value of result
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 0000
+</span>
+</pre>
+<p>
+ </p>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../integral_mask/integral_mask.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,243 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>high_bits_mask</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../integral_mask/integral_mask.html" title="integral_mask type">
+<link rel="next" href="../low_bits_mask/low_bits_mask.html" title="low_bits_mask">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../integral_mask/integral_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="../low_bits_mask/low_bits_mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="high_bits_mask.high_bits_maskbits"></a><a class="link" href="high_bits_maskbits.html" title="high_bits_mask"> high_bits_mask</a>
+</h2></div></div></div>
+<a name="high_bits_mask.high_bits_maskbits.description"></a><h4>
+<a name="id2934373"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.description">Description</a>
+ </h4>
+<p>
+ THe template <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ preforms bitwise operations on compile time then exposes the newly created
+ mask via <code class="computeroutput"><span class="identifier">value</span></code> and <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>. What <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ does is create a mask inside your integral type which sets all bits starting
+ from the left most bit reaching out width bits to the right. For example,
+</p>
+<pre class="programlisting"><span class="comment">// using high bits to create a mask starting from the left most bit with a width
+</span><span class="comment">// of 15
+</span><span class="keyword">typedef</span> <span class="identifier">high_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">15</span><span class="special">&gt;</span> <span class="identifier">bits</span><span class="special">;</span>
+<span class="comment">// bits::value will have the following value in binary.
+</span><span class="comment">// 1111 1111 1111 1110 0000 0000 0000 0000
+</span></pre>
+<p>
+ </p>
+<a name="high_bits_mask.high_bits_maskbits.template_signature"></a><h4>
+<a name="id2934509"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.template_signature">Template
+ Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> has the following
+ template signature:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">Width</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">high_bits_mask</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Is an integral type which the mask is to be created over.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is the width of the mask in bits.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="high_bits_mask.high_bits_maskbits.interface"></a><h4>
+<a name="id2934690"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> Compile time
+ interface. Assume that N is of type <code class="computeroutput"><span class="identifier">high_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span>
+ <span class="number">10</span><span class="special">&gt;</span></code>
+ the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the integral value associated with the <code class="computeroutput"><span class="identifier">width</span></code>
+ template parameter.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature <code class="computeroutput"><span class="identifier">constexper</span></code>
+ this function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="high_bits_mask.high_bits_maskbits.examples"></a><h4>
+<a name="id2935027"></a>
+ <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ template.
+ </p>
+<p>
+ Example:
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">high_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">4</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+
+<span class="comment">// binary for mask::value
+</span><span class="comment">// 1111 0000 0000 0000 0000 0000 0000 0000
+</span>
+<span class="keyword">int</span> <span class="identifier">integral_value</span> <span class="special">=</span> <span class="number">0xc000000c</span><span class="special">;</span>
+
+<span class="comment">// integral_value's binary value
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 1100
+</span>
+<span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">integral_value</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">();</span>
+<span class="comment">// binary value of result
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 0000
+</span>
+</pre>
+<p>
+ </p>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../integral_mask/integral_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="../low_bits_mask/low_bits_mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,209 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Boost.Integer Bits Masks Extension</title>
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="next" href="boost_integer_bits_masks_extension/bit_mask_purpose.html" title="Purpose">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="boost_integer_bits_masks_extension/bit_mask_purpose.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="article">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="boost_integer_bits_masks_extension"></a>Boost.Integer Bits Masks Extension</h2></div>
+<div><div class="authorgroup"><div class="author"><h3 class="author">
+<span class="firstname">Brian</span> <span class="surname">Bartman</span>
+</h3></div></div></div>
+<div><p class="copyright">Copyright &#169; 2010 Brian Bartman</p></div>
+<div><div class="legalnotice">
+<a name="id2924026"></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"><a href="index.html#boost_integer_bits_masks_extension.HeaderSummary"> Header
+ File Summary</a></span></dt>
+<dt><span class="section"> Purpose</span></dt>
+<dt><span class="section"> integral_mask type</span></dt>
+<dt><span class="section"> high_bits_mask</span></dt>
+<dt><span class="section"> low_bits_mask</span></dt>
+<dt><span class="section"> bits_mask</span></dt>
+<dt><span class="section"> Rationale And Motivation</span></dt>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_integer_bits_masks_extension.HeaderSummary"></a><a class="link" href="index.html#boost_integer_bits_masks_extension.HeaderSummary" title="Header File Summary"> Header
+ File Summary</a>
+</h2></div></div></div>
+<p>
+ The following table contains header files used within the bit masks library
+ extension. For additional information such as full descriptions, tutorials
+ and interface guides please use the table of contents above.
+ </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>
+ Contence
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">integral_mask</span></code> type
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal"><boost/integer/integral_mask.hpp></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Header contains <code class="computeroutput"><span class="identifier">integral_mask</span></code>
+ template.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> type
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal"><boost/integer/high_bits_mask.hpp></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Header contains <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ template.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> type
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal"><boost/integer/low_bits_mask.hpp></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Header contains <code class="computeroutput"><span class="identifier">low_bits_mask</span></code>
+ template.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> type
+ and <code class="computeroutput"><span class="identifier">low_bits_mask</span></code>
+ type
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal"><boost/integer/high_low_bits.hpp></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Header contains includes for <code class="computeroutput"><span class="identifier">high_bits_mask</span></code>
+ and <code class="computeroutput"><span class="identifier">low_bits_mask</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">bits_mask</span></code> type and
+ <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> type
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal"><boost/integer/bits_mask.hpp></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Header contains <code class="computeroutput"><span class="identifier">bits_mask</span></code>
+ template.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">bit_mask_group</span></code> type
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="literal"><boost/integer/bit_mask_group.hpp></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Header contains <code class="computeroutput"><span class="identifier">bit_mask_group</span></code>
+ meta-function/container.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: June 08, 2010 at 19:47:44 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_bits_masks_extension/bit_mask_purpose.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,226 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>integral_mask type</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../boost_integer_bits_masks_extension/bit_mask_purpose.html" title="Purpose">
+<link rel="next" href="../high_bits_mask/high_bits_maskbits.html" title="high_bits_mask">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost_integer_bits_masks_extension/bit_mask_purpose.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="../high_bits_mask/high_bits_maskbits.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="integral_mask.integral_mask"></a><a class="link" href="integral_mask.html" title="integral_mask type"> integral_mask type</a>
+</h2></div></div></div>
+<a name="integral_mask.integral_mask.description"></a><h4>
+<a name="id2882999"></a>
+ <a class="link" href="integral_mask.html#integral_mask.integral_mask.description">Description</a>
+ </h4>
+<p>
+ The <code class="computeroutput"><span class="identifier">integral_mask</span></code> type is the
+ most basic mask type. It is used to abstract all masks back to a simple integral
+ type. This type is used similar to an <code class="computeroutput"><span class="identifier">integral_constant</span></code>
+ type from the boost.type_traits library. The <code class="computeroutput"><span class="identifier">integral_mask</span></code>
+ template is located in the following header file: &lt;boost/integer/integral_mask.hpp&gt;.
+ </p>
+<a name="integral_mask.integral_mask.template_signature"></a><h4>
+<a name="id2883060"></a>
+ <a class="link" href="integral_mask.html#integral_mask.integral_mask.template_signature">Template Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">integral_mask</span></code> has the following
+ template signature:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">Value</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">integral_mask</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This Parameters specifies the integral type to be associated with
+ the value.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The integral value which is used to represent a mask.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="integral_mask.integral_mask.interface"></a><h4>
+<a name="id2933793"></a>
+ <a class="link" href="integral_mask.html#integral_mask.integral_mask.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">Integral_mask</span></code> Compile time
+ interface. Assume that N is of type <code class="computeroutput"><span class="identifier">integral_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span>
+ <span class="number">16</span><span class="special">&gt;</span></code>
+ the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>
+ (in the current case that is 16).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code> (in the
+ current case that is int).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type (using N as an example, <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code> is equivalent to <code class="computeroutput"><span class="identifier">integral_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">16</span><span class="special">&gt;</span></code>
+ )
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature <code class="computeroutput"><span class="identifier">constexper</span></code>
+ this function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="integral_mask.integral_mask.examples"></a><h4>
+<a name="id2934135"></a>
+ <a class="link" href="integral_mask.html#integral_mask.integral_mask.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">integral_mask</span></code>
+ template.
+ </p>
+<p>
+ Example:
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">bits</span> <span class="special">=</span> <span class="number">255</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">integral_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">16</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+<span class="comment">// mask has the folling binary value
+</span><span class="comment">// 0000 0000 0000 0000 0000 0000 0001 0110
+</span>
+<span class="comment">// bits has binary value of:
+</span><span class="comment">// 0000 0000 0000 0000 0000 0000 0010 0101
+</span>
+<span class="comment">// the following is a bitwise and operation
+</span><span class="comment">// which is done to bits using the integral_mask type
+</span><span class="keyword">int</span> <span class="identifier">new_bits</span> <span class="special">=</span> <span class="identifier">bits</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">();</span>
+
+<span class="comment">// Resulting value of new_bits:
+</span><span class="comment">// 0000 0000 0000 0000 0000 0000 0000 0100
+</span>
+
+</pre>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../boost_integer_bits_masks_extension/bit_mask_purpose.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="../high_bits_mask/high_bits_maskbits.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/MASKNAME.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/MASKNAME.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,193 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>MASKNAME</title>
+<link rel="stylesheet" href="..//home/brian/gsoc/boost-trunk/doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../high_bits_mask/high_bits_maskbits.html" title="high_bits_mask">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../high_bits_mask/high_bits_maskbits.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/home.png" alt="Home"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="low_bits_mask.MASKNAME"></a><a class="link" href="MASKNAME.html" title="MASKNAME"> MASKNAME</a>
+</h2></div></div></div>
+<a name="low_bits_mask.MASKNAME.description"></a><h4>
+<a name="id3265119"></a>
+ <a class="link" href="MASKNAME.html#low_bits_mask.MASKNAME.description">Description</a>
+ </h4>
+<a name="low_bits_mask.MASKNAME.template_signature"></a><h4>
+<a name="id3265137"></a>
+ <a class="link" href="MASKNAME.html#low_bits_mask.MASKNAME.template_signature">Template Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">TYPENME</span></code> has the following template
+ signature:
+</p>
+<pre class="programlisting"><span class="identifier">TEMPLATE</span> <span class="identifier">SIGNATURE</span><span class="special">.</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ </p>
+ </td>
+<td>
+ <p>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="low_bits_mask.MASKNAME.interface"></a><h4>
+<a name="id3265252"></a>
+ <a class="link" href="MASKNAME.html#low_bits_mask.MASKNAME.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">TYPENAME</span></code> Compile time interface.
+ Assume that N is of type <code class="computeroutput"><span class="identifier">N</span> <span class="identifier">TYPE</span></code> the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature constexper this
+ function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="low_bits_mask.MASKNAME.examples"></a><h4>
+<a name="id3265519"></a>
+ <a class="link" href="MASKNAME.html#low_bits_mask.MASKNAME.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">TYPENAME</span></code>
+ type.
+ </p>
+<p>
+ Exaple:
+</p>
+<pre class="programlisting"><span class="identifier">EXAMPLE</span>
+</pre>
+<p>
+ </p>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../high_bits_mask/high_bits_maskbits.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="..//home/brian/gsoc/boost-trunk/doc/html/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,244 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>low_bits_mask</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../high_bits_mask/high_bits_maskbits.html" title="high_bits_mask">
+<link rel="next" href="../bits_mask/bits_mask.html" title="bits_mask">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../high_bits_mask/high_bits_maskbits.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="../bits_mask/bits_mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="low_bits_mask.low_bits_mask"></a><a class="link" href="low_bits_mask.html" title="low_bits_mask"> low_bits_mask</a>
+</h2></div></div></div>
+<a name="low_bits_mask.low_bits_mask.description"></a><h4>
+<a name="id2935250"></a>
+ <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.description">Description</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> creates a mask
+ of bits starting from the right most bit and extending out to the left. The
+ <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> is similar to
+ the <code class="computeroutput"><span class="identifier">high_bits_mask</span></code> just starts
+ on the right most bit instead of the left most bit. The way <code class="computeroutput"><span class="identifier">low_bits_mask</span></code>
+ behaves in the following example:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">low_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+<span class="comment">// mask::value has the following binary value
+</span><span class="comment">// 0000 0000 0000 0000 0000 0011 1111 1111
+</span></pre>
+<p>
+ The <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> template
+ is located in the &lt;boost/integer/low_bits_mask.hpp&gt; header file.
+ </p>
+<a name="low_bits_mask.low_bits_mask.template_signature"></a><h4>
+<a name="id2935384"></a>
+ <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.template_signature">Template Signature</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> has the following
+ template signature:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">Width</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">low_bits_mask</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Is an integral type which the mask is to be created over.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is the width of the mask in bits.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="low_bits_mask.low_bits_mask.interface"></a><h4>
+<a name="id2935564"></a>
+ <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.interface">Interface</a>
+ </h4>
+<p>
+ <code class="computeroutput"><span class="identifier">low_bits_mask</span></code> Compile time
+ interface. Assume that <code class="computeroutput"><span class="identifier">N</span></code> is
+ of type <code class="computeroutput"><span class="identifier">low_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">10</span><span class="special">&gt;</span></code> the type supplied here is only for example.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Operation
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the <code class="computeroutput"><span class="identifier">value</span></code>
+ associated with <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">value_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">T</span></code> which is
+ the type associated with <code class="computeroutput"><span class="identifier">value</span></code>
+ inside <code class="computeroutput"><span class="identifier">N</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the current types type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">N</span><span class="special">::</span><span class="identifier">width</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns the integral value associated with the <code class="computeroutput"><span class="identifier">width</span></code>
+ template parameter.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">operator</span> <span class="identifier">T</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Run time support function. All this function does is return the value
+ associated with the type. With the c++0x feature <code class="computeroutput"><span class="identifier">constexper</span></code>
+ this function will be made fasters and more effieient.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="low_bits_mask.low_bits_mask.examples"></a><h4>
+<a name="id2935908"></a>
+ <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.examples">Examples</a>
+ </h4>
+<p>
+ Examples and use cases related to the <code class="computeroutput"><span class="identifier">low_bits_mask</span></code>
+ template.
+ </p>
+<p>
+ Example:
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">low_bits_mask</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="number">4</span><span class="special">&gt;</span> <span class="identifier">mask</span><span class="special">;</span>
+
+<span class="comment">// binary for mask::value
+</span><span class="comment">// 0000 0000 0000 0000 0000 0000 0000 1111
+</span>
+<span class="keyword">int</span> <span class="identifier">integral_value</span> <span class="special">=</span> <span class="number">0xc000000c</span><span class="special">;</span>
+
+<span class="comment">// integral_value's binary value
+</span><span class="comment">// 1100 0000 0000 0000 0000 0000 0000 1100
+</span>
+<span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">integral_value</span> <span class="special">&amp;</span> <span class="identifier">mask</span><span class="special">();</span>
+<span class="comment">// binary value of result
+</span><span class="comment">// 0000 0000 0000 0000 0000 0000 0000 1100
+</span></pre>
+<p>
+ </p>
+<p>
+ The implicit cast operator allows for simplicity, clairity of code. In the
+ above example <code class="computeroutput"><span class="identifier">mask</span><span class="special">()</span></code>
+ could be replaced with <code class="computeroutput"><span class="identifier">mask</span><span class="special">::</span><span class="identifier">value</span></code> to
+ achieve the same result. The same applies to all other bitwise operators.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../high_bits_mask/high_bits_maskbits.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="../bits_mask/bits_mask.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,79 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rationale And Motivation</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="up" href="../index.html" title="Boost.Integer Bits Masks Extension">
+<link rel="prev" href="../bits_mask/bits_mask.html" title="bits_mask">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../bits_mask/bits_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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="rationale.rationale"></a><a class="link" href="rationale.html" title="Rationale And Motivation"> Rationale And Motivation</a>
+</h2></div></div></div>
+<p>
+ The motivation and rationale behind the creation a bit masking library stems
+ from the following example:
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">foo</span> <span class="special">{</span>
+ <span class="keyword">bool</span> <span class="identifier">b1</span><span class="special">:</span><span class="number">1</span><span class="special">;</span>
+ <span class="keyword">bool</span> <span class="identifier">b2</span><span class="special">:</span><span class="number">1</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">i1</span><span class="special">:</span><span class="number">2</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">i2</span><span class="special">:</span><span class="number">2</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ The struct <code class="computeroutput"><span class="identifier">foo</span></code> is composed
+ of bit fields. This is fine and wouldn't be a big issues accept that there
+ is something which the user can't see that can cause problems with this struct.
+ The size of struct <code class="computeroutput"><span class="identifier">foo</span></code> need
+ not be any larger then <code class="computeroutput"><span class="keyword">char</span></code>, 1
+ byte, which is the smalles type which can hold it. Now the actual size of
+ <code class="computeroutput"><span class="identifier">foo</span></code> is 4 bytes. This can cause
+ havoc if a union was made with this type and a char while the user was thinking
+ that their type is 1 byte in size. So in order to create something which could
+ handle this situation correctly. This library was created to help with the
+ internal management and storage bit fields and non-standardly aligned data.
+ The goal is to provide both masking utilities and commonlly used structures
+ which would be able to correct the size of the structure and provide simple
+ accessors to the data stored within.
+ </p>
+<a name="rationale.rationale.project_data_structure_motivation_and_rationale"></a><h4>
+<a name="id2937993"></a>
+ <a class="link" href="rationale.html#rationale.rationale.project_data_structure_motivation_and_rationale">Project
+ Data Structure Motivation and Rationale</a>
+ </h4>
+<p>
+ There are several data structures provided which make doing some slightly more
+ complex tasks simple and organized. The structures which the library provides
+ are <code class="computeroutput"><span class="identifier">bit_mask_group</span></code>, <code class="computeroutput"><span class="identifier">bit_mask_tuple</span></code>, <code class="computeroutput"><span class="identifier">bit_field_tuple</span></code>
+ and <code class="computeroutput"><span class="identifier">pointer_plus_bits</span></code>.
+ </p>
+<p>
+ <code class="computeroutput"><span class="identifier">bit_mask_group</span></code> is not a container
+ it doesn't store any data however it provides a way of organizing your masks.
+ The structure also provides additional run time support on top of its tuple
+ style interface.
+ </p>
+</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 &#169; 2010 Brian Bartman<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="../bits_mask/bits_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>
+</div>
+</body>
+</html>

Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/standalone_HTML.manifest
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/standalone_HTML.manifest 2010-06-08 15:52:58 EDT (Tue, 08 Jun 2010)
@@ -0,0 +1,7 @@
+index.html
+boost_integer_bits_masks_extension/bit_mask_purpose.html
+integral_mask/integral_mask.html
+high_bits_mask/high_bits_maskbits.html
+low_bits_mask/low_bits_mask.html
+bits_mask/bits_mask.html
+rationale/rationale.html


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk