Boost logo

Boost-Commit :

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">&lt;</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">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</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">&lt;</span>
+ <span class="identifier">storage</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;,</span>
+ <span class="identifier">member</span><span class="special">&lt;</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">&gt;,</span>
+ <span class="identifier">member</span><span class="special">&lt;</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">&gt;,</span>
+ <span class="identifier">member</span><span class="special">&lt;</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">&gt;,</span>
+ <span class="identifier">member</span><span class="special">&lt;</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">&gt;</span>
+<span class="special">&gt;</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">&lt;</span><span class="identifier">bool_one</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">bool_two</span><span class="special">&gt;()</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">&lt;</span><span class="number">2</span><span class="special">&gt;()</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">&lt;</span><span class="number">2</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">int_one</span><span class="special">&gt;()</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">&lt;</span><span class="keyword">char</span><span class="special">&gt;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;&gt;</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">&lt;</span><span class="identifier">Index</span><span class="special">&gt;()</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">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Bits</span><span class="special">&gt;</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 &lt;boost/integer/bits_mask.hpp&gt; 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 &#169; 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: &lt;boost/integer/integral_mask.hpp&gt;.
     </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 &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="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>


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