$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r63365 - in sandbox/SOC/2010/bit_masks/lib/integer/doc: . html html/bitfield_tuple html/bits_mask html/high_bits_mask html/integral_mask html/low_bits_mask html/rationale
From: bbartmanboost_at_[hidden]
Date: 2010-06-26 14:38:39
Author: bbartman
Date: 2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
New Revision: 63365
URL: http://svn.boost.org/trac/boost/changeset/63365
Log:
working on documentation still
Text files modified: 
   sandbox/SOC/2010/bit_masks/lib/integer/doc/bitfield_tuple.qbk                          |   162 +++++++++++++++++++++++--               
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bitfield_tuple/bft.html                |   255 ++++++++++++++++++++++++++++++++++++--- 
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html               |    10                                         
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html |     8                                         
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html                             |     4                                         
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html       |     8                                         
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html       |     8                                         
   sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html               |     2                                         
   8 files changed, 401 insertions(+), 56 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bitfield_tuple.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bitfield_tuple.qbk	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bitfield_tuple.qbk	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -3,41 +3,177 @@
 [section:bft bitfield_tuple]
 
 [section:desc Description]
-Description
+This is a type which provides access to bitfields stored within integers
+or other integral types (see future work, for extensions). This is a pseudo
+variadic type. It currently only takes up to 10 parameters but I will be 
+extending that to be adjustable via macro similar to the MPL. Each of the 
+template parameters must be supplied as either a storage template or a 
+member template. For example, if one wanted to declare a bitfield_tuple
+that was the size of one byte and contained two boolean bitfields and 
+two integers they would do the following,
+``   
+#include <boost/integer/bitfield_tuple.hpp>
+#include <boost/assert.hpp>
+struct bool_one;
+struct bool_two;
+struct int_one;
+struct int_two;
+
+typedef bitfield_tuple<
+    storage<char>,
+    member<bool,bool_one,1>,
+    member<bool,bool_two,1>,
+    member<int,int_one,2>,
+    member<int,int_two,2>
+>                       example_type;
+
+int main() {
+    example_type temp;
+    temp.get<bool_one>() = false; // assigns false to the first bitfield.
+    temp.get<bool_two>() = true;  // assigns false to the second bitfield.
+    temp.get<2>()        = -1;    // assigns -1 to the first integer 
+                                  // bitfield.
+
+    BOOST_ASSERT(( temp.get<2>()  == -1 )); // this passes the assert and 
+                                            // does not exit the program
+    BOOST_ASSERT(( temp.get<int_one>()  == -1 )); // this passes the assert and 
+                                                  // does not exit the program
+}
+``
+Within the above example the template `bitfield_tuple` is specified using 
+multiple other templates which are used to describe different fields and
+the internal type in which the bitfields will reside. In the above example
+`storage<char>` means that the internal storage type used will be type
+`char`. The template member is used to specify a bitfield within the tuple.
+For instance, looking at `member<bool,bool_one,1>`, the first parameter is
+used to describe the type which the stored value will be returned as. The second
+parameter, `bool_one`, is a name type which can be used to retrieve the a 
+bitfield from with in the `bitfield_tuple`. The third and final parameter is
+the width of the a bitfield in bits, the template `member<bool,bool_one,1>` will
+have a width of one.
+
+
+The goal of a bitfield tuple is to provide a method for constructing bitfields
+which is not subject to packing restrictions of structs or classes, while
+providing an interface simlar to that of a struct or class which contains
+bitfields. For instance if a user wanted to create a struct or class which
+was similar to `example_type` in the above example they would write the 
+following,
+``
+struct foo {
+    bool bool_one:1;
+    bool bool_two:1;
+    int int_one:2;
+    int int_two:2;
+};
+``
+There is a problem with `struct foo`, it is not one which is so simple to see.
+`struct foo` has a `sizeof` 4 bytes, while `example_type` is storing its data
+within in a single byte. One can imagine the problems that arise from creating 
+a `union` of `struct foo` with a `char` type.
 [endsect]
 
-[section:explanation Interface Brief]
-[endsect]
+[section:interface_overview Interface Overview]
 
-[section:tutorial Tutorials and Examples]
+[section:interface_summary Overview]
+There are two main sections to the interface of a `bitfield_tuple`. The first
+part of a `bitfield_tuple`'s interface is how its specified and how those 
+specifications effect its behavior and composition. The second part of the
+interface is the runtime portion of the interface.
+
+[h4 Template Interface]
+For all but one of the types used to specify a `bitfield_tuple`'s template 
+parameters, order does matter, the one type which is not part of the implicit
+ordering of a `bitfield_tuples` composition is the `storage<>` type. For more
+information on the storage type as it relates to ordering please see
+documentation relating to the `storage` template. Basically the template
+parameters which are of type `flag` and `member` increment the `get` function
+accessor's index by 1. (meaning that if one was to construct a bitfield tuple 
+using a flag followed by a `filler`, followed by a `member`, than the index for
+the `flag` would be 0 and the index for the `member` would be 1 because `filler`
+doesn't have a value associated with it).
+
+[h4 Runtime Support Interface]
+The runtime interface of a `bitfield_tuple` is composed of the basic tuple 
+interface, that being it is default and copy constructible, and provids the
+regular `get` funtions which a tuple does. The two main difference between
+the boost.tuple and the `bitfield_tuple` are as follows: First, the 
+`bitfield_tuple` doesn't return references to its data members it has to return
+a proxy to them. Second, the bitfield_tuple provides an additional `get`
+function which uses a name or empty struct to access internal data elements (the
+`bitfield_tuple` still provides the regular `get<Index>()` by index function as
+boost.tuple).
+
+[endsect]
+
+[section:interface_preconditions Preconditions]
+The following is a list of documented and/or enforeced preconditions for
+constructing a `bitfield_tuple`. All of the preconditions will be noted as
+either being documentation only or enfocred. For documentation only
+preconditions please treat them as recomended usage of a `bitfield_tuple`, if
+you do not follow the documentation only preconditions the `bitfield_tuple` may
+not behave as you intend. All enforced preconditions if violated will result
+in compilation failure normally resulting from a static assertion or look up
+failure.
+
+
+[note The following are preconditions for using the `bitfield_tuple` template 
+and not preconditions for calling member functions, operators or constructor.
+For preconditions on functions, constructors, and operators please see each 
+function's, constructor's, or operator's individual documentation. ]
+[endsect]
+
+[section:interface_template Template Parameter Interface]
+The following are different templates which one may use to aid in the
+construction of a `bitfield_tuple`. All templates which are supplied to a
+bitfield tuple empty and essentially have no struct body to them. The template
+parameters supplied to a bitfield_tuple are essentially only used to associate
+different meanings with different groups of types and values which are later
+used to construct a bitfield_tuple.
+
+[section:filler `filler`]
+[h4 Template Signature]
+`template <std::size_t Bits> struct filler;`
+
+
+[h4 Description]
+Filler specifies empty bits to be ignored. Another good way to think about this
+is as bit padding, it adds the number of bits in padding when specified.
 [endsect]
 
-[section:basic_use_cases Basic Use Cases]
-Use Cases
 [endsect]
 
-[section:interface_overview Interface Overview]
+[section:interface_reference Reference]
+Interface Reference
+[endsect]
 
-[section:interface_summary Summary]
-Summary
+[section:interface_implementation Implementation Reference]
+Implementation Reference.
 [endsect]
 
-[section:interface_template Template Parameter Options]
-Parameter Options.
 [endsect]
 
+[section:endianness_and_bitfield_order Endianness And Bitfield Ordering]
 
-[section:interface_reference Reference]
-Interface Reference
+[section:endianness Endianness]
 [endsect]
 
+[section:Bitfield_order Bitfield Storage Order]
 [endsect]
 
+[endsect]
 
+[section:tutorial Tutorials and Examples]
+[endsect]
+
+[section:basic_use_cases Basic Use Cases]
+Use Cases
+[endsect]
 
 [section:rationale Rationale]
 Rationale
 [endsect]
 
+
 [endsect]
 
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bitfield_tuple/bft.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bitfield_tuple/bft.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bitfield_tuple/bft.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -21,10 +21,11 @@
 </h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"> Description</span></dt>
-<dt><span class="section"> Interface Brief</span></dt>
+<dt><span class="section"> Interface Overview</span></dt>
+<dt><span class="section"><a href="bft.html#bitfield_tuple.bft.endianness_and_bitfield_order"> Endianness
+      And Bitfield Ordering</a></span></dt>
 <dt><span class="section"> Tutorials and Examples</span></dt>
 <dt><span class="section"> Basic Use Cases</span></dt>
-<dt><span class="section"> Interface Overview</span></dt>
 <dt><span class="section"> Rationale</span></dt>
 </dl></div>
 <div class="section">
@@ -32,21 +33,82 @@
 <a name="bitfield_tuple.bft.desc"></a><a class="link" href="bft.html#bitfield_tuple.bft.desc" title="Description"> Description</a>
 </h3></div></div></div>
 <p>
-        Description
+        This is a type which provides access to bitfields stored within integers
+        or other integral types (see future work, for extensions). This is a pseudo
+        variadic type. It currently only takes up to 10 parameters but I will be
+        extending that to be adjustable via macro similar to the MPL. Each of the
+        template parameters must be supplied as either a storage template or a member
+        template. For example, if one wanted to declare a bitfield_tuple that was
+        the size of one byte and contained two boolean bitfields and two integers
+        they would do the following, 
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">integer</span><span class="special">/</span><span class="identifier">bitfield_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assert</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">bool_one</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">bool_two</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">int_one</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">int_two</span><span class="special">;</span>
+
+<span class="keyword">typedef</span> <span class="identifier">bitfield_tuple</span><span class="special"><</span>
+    <span class="identifier">storage</span><span class="special"><</span><span class="keyword">char</span><span class="special">>,</span>
+    <span class="identifier">member</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">bool_one</span><span class="special">,</span><span class="number">1</span><span class="special">>,</span>
+    <span class="identifier">member</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">bool_two</span><span class="special">,</span><span class="number">1</span><span class="special">>,</span>
+    <span class="identifier">member</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">int_one</span><span class="special">,</span><span class="number">2</span><span class="special">>,</span>
+    <span class="identifier">member</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="identifier">int_two</span><span class="special">,</span><span class="number">2</span><span class="special">></span>
+<span class="special">></span>                       <span class="identifier">example_type</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="identifier">example_type</span> <span class="identifier">temp</span><span class="special">;</span>
+    <span class="identifier">temp</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">bool_one</span><span class="special">>()</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span> <span class="comment">// assigns false to the first bitfield.
+</span>    <span class="identifier">temp</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">bool_two</span><span class="special">>()</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>  <span class="comment">// assigns false to the second bitfield.
+</span>    <span class="identifier">temp</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="number">2</span><span class="special">>()</span>        <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">;</span>    <span class="comment">// assigns -1 to the first integer 
+</span>                                  <span class="comment">// bitfield.
+</span>
+    <span class="identifier">BOOST_ASSERT</span><span class="special">((</span> <span class="identifier">temp</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="number">2</span><span class="special">>()</span>  <span class="special">==</span> <span class="special">-</span><span class="number">1</span> <span class="special">));</span> <span class="comment">// this passes the assert and 
+</span>                                            <span class="comment">// does not exit the program
+</span>    <span class="identifier">BOOST_ASSERT</span><span class="special">((</span> <span class="identifier">temp</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">int_one</span><span class="special">>()</span>  <span class="special">==</span> <span class="special">-</span><span class="number">1</span> <span class="special">));</span> <span class="comment">// this passes the assert and 
+</span>                                                  <span class="comment">// does not exit the program
+</span><span class="special">}</span>
+</pre>
+<p>
+        Within the above example the template <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+        is specified using multiple other templates which are used to describe different
+        fields and the internal type in which the bitfields will reside. In the above
+        example <code class="computeroutput"><span class="identifier">storage</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></code> means
+        that the internal storage type used will be type <code class="computeroutput"><span class="keyword">char</span></code>.
+        The template member is used to specify a bitfield within the tuple. For instance,
+        looking at <code class="computeroutput"><span class="identifier">member</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">bool_one</span><span class="special">,</span><span class="number">1</span><span class="special">></span></code>,
+        the first parameter is used to describe the type which the stored value will
+        be returned as. The second parameter, <code class="computeroutput"><span class="identifier">bool_one</span></code>,
+        is a name type which can be used to retrieve the a bitfield from with in
+        the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>. The third
+        and final parameter is the width of the a bitfield in bits, the template
+        <code class="computeroutput"><span class="identifier">member</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="identifier">bool_one</span><span class="special">,</span><span class="number">1</span><span class="special">></span></code>
+        will have a width of one.
       </p>
-</div>
-<div class="section"><div class="titlepage"><div><div><h3 class="title">
-<a name="bitfield_tuple.bft.explanation"></a><a class="link" href="bft.html#bitfield_tuple.bft.explanation" title="Interface Brief"> Interface Brief</a>
-</h3></div></div></div></div>
-<div class="section"><div class="titlepage"><div><div><h3 class="title">
-<a name="bitfield_tuple.bft.tutorial"></a><a class="link" href="bft.html#bitfield_tuple.bft.tutorial" title="Tutorials and Examples"> Tutorials and Examples</a>
-</h3></div></div></div></div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="bitfield_tuple.bft.basic_use_cases"></a><a class="link" href="bft.html#bitfield_tuple.bft.basic_use_cases" title="Basic Use Cases"> Basic Use Cases</a>
-</h3></div></div></div>
 <p>
-        Use Cases
+        The goal of a bitfield tuple is to provide a method for constructing bitfields
+        which is not subject to packing restrictions of structs or classes, while
+        providing an interface simlar to that of a struct or class which contains
+        bitfields. For instance if a user wanted to create a struct or class which
+        was similar to <code class="computeroutput"><span class="identifier">example_type</span></code>
+        in the above example they would write the following, 
+</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">bool_one</span><span class="special">:</span><span class="number">1</span><span class="special">;</span>
+    <span class="keyword">bool</span> <span class="identifier">bool_two</span><span class="special">:</span><span class="number">1</span><span class="special">;</span>
+    <span class="keyword">int</span> <span class="identifier">int_one</span><span class="special">:</span><span class="number">2</span><span class="special">;</span>
+    <span class="keyword">int</span> <span class="identifier">int_two</span><span class="special">:</span><span class="number">2</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+        There is a problem with <code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">foo</span></code>, it is not one which is so simple to
+        see. <code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">foo</span></code>
+        has a <code class="computeroutput"><span class="keyword">sizeof</span></code> 4 bytes, while
+        <code class="computeroutput"><span class="identifier">example_type</span></code> is storing its
+        data within in a single byte. One can imagine the problems that arise from
+        creating a <code class="computeroutput"><span class="keyword">union</span></code> of <code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">foo</span></code>
+        with a <code class="computeroutput"><span class="keyword">char</span></code> type.
       </p>
 </div>
 <div class="section">
@@ -55,29 +117,136 @@
 </h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="bft.html#bitfield_tuple.bft.interface_overview.interface_summary">
-        Summary</a></span></dt>
+        Overview</a></span></dt>
+<dt><span class="section"><a href="bft.html#bitfield_tuple.bft.interface_overview.interface_preconditions">
+        Preconditions</a></span></dt>
 <dt><span class="section"><a href="bft.html#bitfield_tuple.bft.interface_overview.interface_template">
-        Template Parameter Options</a></span></dt>
+        Template Parameter Interface</a></span></dt>
 <dt><span class="section"><a href="bft.html#bitfield_tuple.bft.interface_overview.interface_reference">
         Reference</a></span></dt>
+<dt><span class="section"><a href="bft.html#bitfield_tuple.bft.interface_overview.interface_implementation">
+        Implementation Reference</a></span></dt>
 </dl></div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="bitfield_tuple.bft.interface_overview.interface_summary"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_summary" title="Summary">
-        Summary</a>
+<a name="bitfield_tuple.bft.interface_overview.interface_summary"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_summary" title="Overview">
+        Overview</a>
 </h4></div></div></div>
 <p>
-          Summary
+          There are two main sections to the interface of a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>.
+          The first part of a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>'s
+          interface is how its specified and how those specifications effect its
+          behavior and composition. The second part of the interface is the runtime
+          portion of the interface.
+        </p>
+<a name="bitfield_tuple.bft.interface_overview.interface_summary.template_interface"></a><h5>
+<a name="id2995915"></a>
+          <a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_summary.template_interface">Template
+          Interface</a>
+        </h5>
+<p>
+          For all but one of the types used to specify a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>'s
+          template parameters, order does matter, the one type which is not part
+          of the implicit ordering of a <code class="computeroutput"><span class="identifier">bitfield_tuples</span></code>
+          composition is the <code class="computeroutput"><span class="identifier">storage</span><span class="special"><></span></code> type. For more information on the
+          storage type as it relates to ordering please see documentation relating
+          to the <code class="computeroutput"><span class="identifier">storage</span></code> template.
+          Basically the template parameters which are of type <code class="computeroutput"><span class="identifier">flag</span></code>
+          and <code class="computeroutput"><span class="identifier">member</span></code> increment the
+          <code class="computeroutput"><span class="identifier">get</span></code> function accessor's
+          index by 1. (meaning that if one was to construct a bitfield tuple using
+          a flag followed by a <code class="computeroutput"><span class="identifier">filler</span></code>,
+          followed by a <code class="computeroutput"><span class="identifier">member</span></code>, than
+          the index for the <code class="computeroutput"><span class="identifier">flag</span></code>
+          would be 0 and the index for the <code class="computeroutput"><span class="identifier">member</span></code>
+          would be 1 because <code class="computeroutput"><span class="identifier">filler</span></code>
+          doesn't have a value associated with it).
+        </p>
+<a name="bitfield_tuple.bft.interface_overview.interface_summary.runtime_support_interface"></a><h5>
+<a name="id2996064"></a>
+          <a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_summary.runtime_support_interface">Runtime
+          Support Interface</a>
+        </h5>
+<p>
+          The runtime interface of a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+          is composed of the basic tuple interface, that being it is default and
+          copy constructible, and provids the regular <code class="computeroutput"><span class="identifier">get</span></code>
+          funtions which a tuple does. The two main difference between the boost.tuple
+          and the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+          are as follows: First, the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+          doesn't return references to its data members it has to return a proxy
+          to them. Second, the bitfield_tuple provides an additional <code class="computeroutput"><span class="identifier">get</span></code> function which uses a name or empty
+          struct to access internal data elements (the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+          still provides the regular <code class="computeroutput"><span class="identifier">get</span><span class="special"><</span><span class="identifier">Index</span><span class="special">>()</span></code> by index function as boost.tuple).
         </p>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="bitfield_tuple.bft.interface_overview.interface_template"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_template" title="Template Parameter Options">
-        Template Parameter Options</a>
+<a name="bitfield_tuple.bft.interface_overview.interface_preconditions"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_preconditions" title="Preconditions">
+        Preconditions</a>
 </h4></div></div></div>
 <p>
-          Parameter Options.
+          The following is a list of documented and/or enforeced preconditions for
+          constructing a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>.
+          All of the preconditions will be noted as either being documentation only
+          or enfocred. For documentation only preconditions please treat them as
+          recomended usage of a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>,
+          if you do not follow the documentation only preconditions the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code> may not behave as you
+          intend. All enforced preconditions if violated will result in compilation
+          failure normally resulting from a static assertion or look up failure.
         </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>
+            The following are preconditions for using the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+            template and not preconditions for calling member functions, operators
+            or constructor. For preconditions on functions, constructors, and operators
+            please see each function's, constructor's, or operator's individual documentation.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bitfield_tuple.bft.interface_overview.interface_template"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_template" title="Template Parameter Interface">
+        Template Parameter Interface</a>
+</h4></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="bft.html#bitfield_tuple.bft.interface_overview.interface_template.filler">
+          <code class="computeroutput"><span class="identifier">filler</span></code></a></span></dt></dl></div>
+<p>
+          The following are different templates which one may use to aid in the construction
+          of a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>. All
+          templates which are supplied to a bitfield tuple empty and essentially
+          have no struct body to them. The template parameters supplied to a bitfield_tuple
+          are essentially only used to associate different meanings with different
+          groups of types and values which are later used to construct a bitfield_tuple.
+        </p>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="bitfield_tuple.bft.interface_overview.interface_template.filler"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_template.filler" title="filler">
+          <code class="computeroutput"><span class="identifier">filler</span></code></a>
+</h5></div></div></div>
+<a name="bitfield_tuple.bft.interface_overview.interface_template.filler.template_signature"></a><h5>
+<a name="id2996321"></a>
+            <a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_template.filler.template_signature">Template
+            Signature</a>
+          </h5>
+<p>
+            <code class="computeroutput"><span class="keyword">template</span> <span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bits</span><span class="special">></span> <span class="keyword">struct</span>
+            <span class="identifier">filler</span><span class="special">;</span></code>
+          </p>
+<a name="bitfield_tuple.bft.interface_overview.interface_template.filler.description"></a><h5>
+<a name="id2996396"></a>
+            <a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_template.filler.description">Description</a>
+          </h5>
+<p>
+            Filler specifies empty bits to be ignored. Another good way to think
+            about this is as bit padding, it adds the number of bits in padding when
+            specified.
+          </p>
+</div>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
@@ -88,6 +257,46 @@
           Interface Reference
         </p>
 </div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bitfield_tuple.bft.interface_overview.interface_implementation"></a><a class="link" href="bft.html#bitfield_tuple.bft.interface_overview.interface_implementation" title="Implementation Reference">
+        Implementation Reference</a>
+</h4></div></div></div>
+<p>
+          Implementation Reference.
+        </p>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bitfield_tuple.bft.endianness_and_bitfield_order"></a><a class="link" href="bft.html#bitfield_tuple.bft.endianness_and_bitfield_order" title="Endianness And Bitfield Ordering"> Endianness
+      And Bitfield Ordering</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="bft.html#bitfield_tuple.bft.endianness_and_bitfield_order.endianness">
+        Endianness</a></span></dt>
+<dt><span class="section"><a href="bft.html#bitfield_tuple.bft.endianness_and_bitfield_order.Bitfield_order">
+        Bitfield Storage Order</a></span></dt>
+</dl></div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="bitfield_tuple.bft.endianness_and_bitfield_order.endianness"></a><a class="link" href="bft.html#bitfield_tuple.bft.endianness_and_bitfield_order.endianness" title="Endianness">
+        Endianness</a>
+</h4></div></div></div></div>
+<div class="section"><div class="titlepage"><div><div><h4 class="title">
+<a name="bitfield_tuple.bft.endianness_and_bitfield_order.Bitfield_order"></a><a class="link" href="bft.html#bitfield_tuple.bft.endianness_and_bitfield_order.Bitfield_order" title="Bitfield Storage Order">
+        Bitfield Storage Order</a>
+</h4></div></div></div></div>
+</div>
+<div class="section"><div class="titlepage"><div><div><h3 class="title">
+<a name="bitfield_tuple.bft.tutorial"></a><a class="link" href="bft.html#bitfield_tuple.bft.tutorial" title="Tutorials and Examples"> Tutorials and Examples</a>
+</h3></div></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bitfield_tuple.bft.basic_use_cases"></a><a class="link" href="bft.html#bitfield_tuple.bft.basic_use_cases" title="Basic Use Cases"> Basic Use Cases</a>
+</h3></div></div></div>
+<p>
+        Use Cases
+      </p>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/bits_mask/bits_mask.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -20,7 +20,7 @@
 <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="id2904250"></a>
+<a name="id2993133"></a>
       <a class="link" href="bits_mask.html#bits_mask.bits_mask.description">Description</a>
     </h4>
 <p>
@@ -60,7 +60,7 @@
       in the <boost/integer/bits_mask.hpp> header file.
     </p>
 <a name="bits_mask.bits_mask.template_signature"></a><h4>
-<a name="id2904490"></a>
+<a name="id2993373"></a>
       <a class="link" href="bits_mask.html#bits_mask.bits_mask.template_signature">Template Signature</a>
     </h4>
 <p>
@@ -130,7 +130,7 @@
 </tbody>
 </table></div>
 <a name="bits_mask.bits_mask.interface"></a><h4>
-<a name="id2904738"></a>
+<a name="id2993621"></a>
       <a class="link" href="bits_mask.html#bits_mask.bits_mask.interface">Interface</a>
     </h4>
 <p>
@@ -237,7 +237,7 @@
 </tbody>
 </table></div>
 <a name="bits_mask.bits_mask.preconditions"></a><h4>
-<a name="id2905101"></a>
+<a name="id2993985"></a>
       <a class="link" href="bits_mask.html#bits_mask.bits_mask.preconditions">Preconditions</a>
     </h4>
 <p>
@@ -336,7 +336,7 @@
 </tbody>
 </table></div>
 <a name="bits_mask.bits_mask.examples"></a><h4>
-<a name="id2905421"></a>
+<a name="id2994304"></a>
       <a class="link" href="bits_mask.html#bits_mask.bits_mask.examples">Examples</a>
     </h4>
 <p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/high_bits_mask/high_bits_maskbits.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -20,7 +20,7 @@
 <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="id2902492"></a>
+<a name="id2991375"></a>
       <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.description">Description</a>
     </h4>
 <p>
@@ -39,7 +39,7 @@
 <p>
     </p>
 <a name="high_bits_mask.high_bits_maskbits.template_signature"></a><h4>
-<a name="id2902628"></a>
+<a name="id2991511"></a>
       <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.template_signature">Template
       Signature</a>
     </h4>
@@ -97,7 +97,7 @@
 </tbody>
 </table></div>
 <a name="high_bits_mask.high_bits_maskbits.interface"></a><h4>
-<a name="id2902810"></a>
+<a name="id2991693"></a>
       <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.interface">Interface</a>
     </h4>
 <p>
@@ -193,7 +193,7 @@
 </tbody>
 </table></div>
 <a name="high_bits_mask.high_bits_maskbits.examples"></a><h4>
-<a name="id2903146"></a>
+<a name="id2992029"></a>
       <a class="link" href="high_bits_maskbits.html#high_bits_mask.high_bits_maskbits.examples">Examples</a>
     </h4>
 <p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -21,7 +21,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2010 Brian Bartman</p></div>
 <div><div class="legalnotice">
-<a name="id2892145"></a><p>
+<a name="id2981028"></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>
@@ -203,7 +203,7 @@
   </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 26, 2010 at 17:14:32 GMT</small></p></td>
+<td align="left"><p><small>Last revised: June 26, 2010 at 18:33:55 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/integral_mask/integral_mask.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -20,7 +20,7 @@
 <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="id2851119"></a>
+<a name="id2940002"></a>
       <a class="link" href="integral_mask.html#integral_mask.integral_mask.description">Description</a>
     </h4>
 <p>
@@ -31,7 +31,7 @@
       template is located in the following header file: <boost/integer/integral_mask.hpp>.
     </p>
 <a name="integral_mask.integral_mask.template_signature"></a><h4>
-<a name="id2851179"></a>
+<a name="id2940062"></a>
       <a class="link" href="integral_mask.html#integral_mask.integral_mask.template_signature">Template Signature</a>
     </h4>
 <p>
@@ -89,7 +89,7 @@
 </tbody>
 </table></div>
 <a name="integral_mask.integral_mask.interface"></a><h4>
-<a name="id2901912"></a>
+<a name="id2990796"></a>
       <a class="link" href="integral_mask.html#integral_mask.integral_mask.interface">Interface</a>
     </h4>
 <p>
@@ -175,7 +175,7 @@
 </tbody>
 </table></div>
 <a name="integral_mask.integral_mask.examples"></a><h4>
-<a name="id2902255"></a>
+<a name="id2991138"></a>
       <a class="link" href="integral_mask.html#integral_mask.integral_mask.examples">Examples</a>
     </h4>
 <p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/low_bits_mask/low_bits_mask.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -20,7 +20,7 @@
 <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="id2903369"></a>
+<a name="id2992253"></a>
       <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.description">Description</a>
     </h4>
 <p>
@@ -43,7 +43,7 @@
       is located in the <boost/integer/low_bits_mask.hpp> header file.
     </p>
 <a name="low_bits_mask.low_bits_mask.template_signature"></a><h4>
-<a name="id2903503"></a>
+<a name="id2992386"></a>
       <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.template_signature">Template Signature</a>
     </h4>
 <p>
@@ -100,7 +100,7 @@
 </tbody>
 </table></div>
 <a name="low_bits_mask.low_bits_mask.interface"></a><h4>
-<a name="id2903683"></a>
+<a name="id2992567"></a>
       <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.interface">Interface</a>
     </h4>
 <p>
@@ -195,7 +195,7 @@
 </tbody>
 </table></div>
 <a name="low_bits_mask.low_bits_mask.examples"></a><h4>
-<a name="id2904027"></a>
+<a name="id2992911"></a>
       <a class="link" href="low_bits_mask.html#low_bits_mask.low_bits_mask.examples">Examples</a>
     </h4>
 <p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html	2010-06-26 14:38:37 EDT (Sat, 26 Jun 2010)
@@ -46,7 +46,7 @@
       accessors to the data stored within.
     </p>
 <a name="rationale.rationale.project_data_structure_motivation_and_rationale"></a><h4>
-<a name="id2906275"></a>
+<a name="id2996747"></a>
       <a class="link" href="rationale.html#rationale.rationale.project_data_structure_motivation_and_rationale">Project
       Data Structure Motivation and Rationale</a>
     </h4>