|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r63694 - in sandbox/SOC/2010/bit_masks/lib/integer/doc: . bft_doc/overview bit_mask_doc bit_mask_doc/overview html html/boost_integer_bits_masks_extension/bitfield_tuple/overview html/boost_integer_bits_masks_extension/bitfield_tuple/reference html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/getting_started html/rationale
From: bbartmanboost_at_[hidden]
Date: 2010-07-06 10:21:00
Author: bbartman
Date: 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
New Revision: 63694
URL: http://svn.boost.org/trac/boost/changeset/63694
Log:
working on restructuring and fixing some of my documentation
Added:
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview/overview.qbk (contents, props changed)
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview/rationale.qbk (contents, props changed)
Text files modified:
sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/overview/overview.qbk | 141 ++++++++++++++++++++++++-
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/masks.qbk | 6 +
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview.qbk | 10 +
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/reference.qbk | 6 +
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/users_guide.qbk | 6 +
sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_masks.qbk | 19 +++
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/overview/description.html | 217 +++++++++++++++++++++++++++++++--------
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_bitfield_tuple__and__bitfield_reference_.html | 28 ++--
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_bit_align_.html | 8
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_filler_.html | 8
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_flag_.html | 8
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_member_.html | 8
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_storage_.html | 8
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/code_generation_macros.html | 2
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/parameter_adjustment_macros.html | 2
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/boost_fusion_sequence_extension.html | 2
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/getting_started/dependencies.html | 12 +-
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/tutorial.html | 8
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/index.html | 10 +
sandbox/SOC/2010/bit_masks/lib/integer/doc/html/rationale/rationale.html | 2
sandbox/SOC/2010/bit_masks/lib/integer/doc/main.qbk | 44 -------
21 files changed, 406 insertions(+), 149 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/overview/overview.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/overview/overview.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/overview/overview.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -5,14 +5,137 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
]
[section 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,
+A `bitfield_tuple` is a type that provides access to bitfields stored within
+integral or integral like types. The interface of this type is similar to that
+of a tuple, with slight variations on the template parameters and `get`
+function, while still providing similar functionality to the boost.tuple.
+A piratical example for using a `bitfield_tuple` could be for storing colors.
+``
+#include <boost/integer/bitfield_tuple.hpp>
+
+using namespace boost;
+struct red;
+struct green;
+struct blue;
+
+
+typedef bitfield_tuple<
+ storage<unsigned short>,
+ member<unsigned char, red,5>,
+ member<unsigned char, green, 6>,
+ member<unsigned char, blue, 5>
+> rgb565_t ;
+``
+To use the storage of bitfield_tuple for retrieving and storing data,
+all that needs to be done is to call `get`, just like a Boost.Tuple. Each of the
+named parameters do something slightly different, in the above example
+`storage<unsigned short>` is used to specify that the type to be used for
+storing the bitfields within is going to be an unsigned short. The
+`member<unsigned int, red, 5>` member is used to specify a bitfield within the
+`bitfield_tuple`. Here is how `member` works, and relates directly back to
+regular reconizable C++.
+[table
+ [
+ [`bitfield_tuple`]
+ [`classic Struct Example`]
+ ]
+ [
+ [
+``
+#include <boost/integer/bitfield_tuple.hpp>
+
+using namespace boost;
+
+struct red;
+struct green;
+struct blue;
+
+typedef bitfield_tuple<
+ ...
+ member<unsigned char, red,5>,
+ ...
+> rgb656_t
+``
+ ]
+ [
+``
+struct rgb656_t {
+ ...
+ unsigned char red:5;
+ ...
+};
+``
+ ]
+ ]
+]
+
+Observing the above example `member<unsigned char, red,5>,` and
+`unsigned char red:5;` are specified in almost the exact same way. First
+parameter in `member` relates directly to the `unsigned char` type used in the
+bitfield `red` in the struct above. The second parameter of member `red` which is
+in the above using a bitfield is a type, and the the struct rgb656_t it's the
+name of the variable. The second parameter for member is also a name for the
+bitfield it corresponds to and can be used with the get function to retrieve
+the bitfield its being associated with. The third parameter is the width of the
+bitfield in bits just as it is specified using `:5` in the above example.
+Accessing of bitfields can be done either by index or by name. If one chooses to
+retrieve a bitfield by index, the index value is based on the other member which
+are specified before it. The following is an example of how to use both an index
+accessor and the name accessor, the two examples do the exact same thing.
+
+
+[table
+ [
+ [Access By Name]
+ [Access By Index]
+ ]
+ [
+ [
+``
+int main() {
+ rgb565_t rgb565;
+
+ rgb565.get<red>() = 31;
+ rgb565.get<green>() = 15;
+ rgb565.get<blue>() = 12;
+
+ return 0;
+}
+``
+ ]
+ [
+``
+int main() {
+ rgb565_t rgb565;
+
+ rgb565.get<0>() = 31;
+ rgb565.get<1>() = 15;
+ rgb565.get<2>() = 12;
+
+ return 0;
+}
+``
+ ]
+ ]
+]
+
+
+The `bitfield_tuple` get functions return proxies to the bitfield they represent.
+Using a proxy provides a way for the user to access the bitfields directly
+without the hassle of doing the masking themselves.
+
+
+One might be wondering just what is the benefit of doing all of this extra work
+for something that seems much easier to do using conventional means? Well the
+`bitfield_tuple` is used to abstract the storage and retrieval of data into and
+out of an integral type, by doing so allows for the storage and retrieval
+of types with different endianness.
+
+[/
+
+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>
@@ -53,5 +176,5 @@
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.
-
+]
[endsect]
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/masks.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/masks.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/masks.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,6 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,10 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
+[section Overview]
+[include overview/overview.qbk]
+[include overview/rationale.qbk]
+[endsect]
Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview/overview.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview/overview.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,43 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
+[section Description]
+
+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 `integral_constant` provided by boost.type_traits library. All masks are
+able to be treated as the `integral_constant` type. All masks provide the
+following three compile time accessible features. They all provide `::type`,
+`::value_type` and `::value` 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 timesupport. 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,
+
+``
+#include <boost/integer/integral_mask.hpp>
+
+using namespace boost;
+
+
+int main() {
+ int t = 0xdeadbeef;
+ typedef integral_mask<int, 3> mask_type;
+
+ int unmasked_t = t & mask_type();
+ return 0;
+}
+``
+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.
+
+[note All masks are trivially default constructible and destructible.]
+
+[endsect]
Added: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview/rationale.qbk
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/overview/rationale.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,9 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
+
+[section rationale]
+[endsect]
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/reference.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/reference.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/reference.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,6 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/users_guide.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/users_guide.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_mask_doc/users_guide.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,6 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_masks.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_masks.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bit_masks.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -0,0 +1,19 @@
+[/
+Copyright (c) 2010 Brian Bartman
+
+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)
+]
+
+[section Bit Masks]
+[include bit_mask_doc/overview.qbk]
+
+[section:bit_mask_purpose Purpose]
+[endsect]
+
+[include:integral_mask integral_mask.qbk]
+[include:high_bits_mask high_bits.qbk]
+[include:low_bits_mask low_bits.qbk]
+[include:bits_mask bits_mask.qbk]
+[endsect]
+
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/overview/description.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/overview/description.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/overview/description.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,58 +20,183 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.overview.description"></a><a class="link" href="description.html" title="Description">Description</a>
</h4></div></div></div>
<p>
- 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,
+ A <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code> is a type
+ that provides access to bitfields stored within integral or integral like
+ types. The interface of this type is similar to that of a tuple, with slight
+ variations on the template parameters and <code class="computeroutput"><span class="identifier">get</span></code>
+ function, while still providing similar functionality to the boost.tuple.
+ A piratical example for using a <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+ could be for storing colors.
</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">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">red</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">green</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">blue</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">unsigned</span> <span class="keyword">short</span><span class="special">>,</span>
+ <span class="identifier">member</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">,</span> <span class="identifier">red</span><span class="special">,</span><span class="number">5</span><span class="special">>,</span>
+ <span class="identifier">member</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">,</span> <span class="identifier">green</span><span class="special">,</span> <span class="number">6</span><span class="special">>,</span>
+ <span class="identifier">member</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">,</span> <span class="identifier">blue</span><span class="special">,</span> <span class="number">5</span><span class="special">></span>
+<span class="special">></span> <span class="identifier">rgb565_t</span> <span class="special">;</span>
+</pre>
+<p>
+ To use the storage of bitfield_tuple for retrieving and storing data, all
+ that needs to be done is to call <code class="computeroutput"><span class="identifier">get</span></code>,
+ just like a Boost.Tuple. Each of the named parameters do something slightly
+ different, in the above example <code class="computeroutput"><span class="identifier">storage</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">short</span><span class="special">></span></code>
+ is used to specify that the type to be used for storing the bitfields within
+ is going to be an unsigned short. The <code class="computeroutput"><span class="identifier">member</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">red</span><span class="special">,</span> <span class="number">5</span><span class="special">></span></code>
+ member is used to specify a bitfield within the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>.
+ Here is how <code class="computeroutput"><span class="identifier">member</span></code> works,
+ and relates directly back to regular reconizable C++.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">classic</span> <span class="identifier">Struct</span>
+ <span class="identifier">Example</span></code>
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-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="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span>
+
+<span class="keyword">struct</span> <span class="identifier">red</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">green</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">blue</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>
+ <span class="special">...</span>
+ <span class="identifier">member</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">,</span> <span class="identifier">red</span><span class="special">,</span><span class="number">5</span><span class="special">>,</span>
+ <span class="special">...</span>
+<span class="special">></span> <span class="identifier">rgb656_t</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">rgb656_t</span> <span class="special">{</span>
+ <span class="special">...</span>
+ <span class="keyword">unsigned</span> <span class="keyword">char</span> <span class="identifier">red</span><span class="special">:</span><span class="number">5</span><span class="special">;</span>
+ <span class="special">...</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<p>
+ Observing the above example <code class="computeroutput"><span class="identifier">member</span><span class="special"><</span><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">,</span> <span class="identifier">red</span><span class="special">,</span><span class="number">5</span><span class="special">>,</span></code>
+ and <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">char</span>
+ <span class="identifier">red</span><span class="special">:</span><span class="number">5</span><span class="special">;</span></code> are specified
+ in almost the exact same way. First parameter in <code class="computeroutput"><span class="identifier">member</span></code>
+ relates directly to the <code class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">char</span></code> type used in the bitfield
+ <code class="computeroutput"><span class="identifier">red</span></code> in the struct above.
+ The second parameter of member <code class="computeroutput"><span class="identifier">red</span></code>
+ which is in the above using a bitfield is a type, and the the struct rgb656_t
+ it's the name of the variable. The second parameter for member is also
+ a name for the bitfield it corresponds to and can be used with the get
+ function to retrieve the bitfield its being associated with. The third
+ parameter is the width of the bitfield in bits just as it is specified
+ using <code class="computeroutput"><span class="special">:</span><span class="number">5</span></code>
+ in the above example. Accessing of bitfields can be done either by index
+ or by name. If one chooses to retrieve a bitfield by index, the index value
+ is based on the other member which are specified before it. The following
+ is an example of how to use both an index accessor and the name accessor,
+ the two examples do the exact same thing.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Access By Name
+ </p>
+ </th>
+<th>
+ <p>
+ Access By Index
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+ <span class="identifier">rgb565_t</span> <span class="identifier">rgb565</span><span class="special">;</span>
+
+ <span class="identifier">rgb565</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">red</span><span class="special">>()</span> <span class="special">=</span> <span class="number">31</span><span class="special">;</span>
+ <span class="identifier">rgb565</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">green</span><span class="special">>()</span> <span class="special">=</span> <span class="number">15</span><span class="special">;</span>
+ <span class="identifier">rgb565</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="identifier">blue</span><span class="special">>()</span> <span class="special">=</span> <span class="number">12</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>
+ </p>
+ </td>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+ <span class="identifier">rgb565_t</span> <span class="identifier">rgb565</span><span class="special">;</span>
+
+ <span class="identifier">rgb565</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="number">0</span><span class="special">>()</span> <span class="special">=</span> <span class="number">31</span><span class="special">;</span>
+ <span class="identifier">rgb565</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="number">1</span><span class="special">>()</span> <span class="special">=</span> <span class="number">15</span><span class="special">;</span>
+ <span class="identifier">rgb565</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="number">12</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>
- 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>
+ </td>
+</tr></tbody>
+</table></div>
+<p>
+ The <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code> get
+ functions return proxies to the bitfield they represent. Using a proxy
+ provides a way for the user to access the bitfields directly without the
+ hassle of doing the masking themselves.
+ </p>
+<p>
+ One might be wondering just what is the benefit of doing all of this extra
+ work for something that seems much easier to do using conventional means?
+ Well the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
+ is used to abstract the storage and retrieval of data into and out of and
+ integral type, and by doing so allows for the storage and retrieval of
+ types with different endianness.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_bitfield_tuple__and__bitfield_reference_.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_bitfield_tuple__and__bitfield_reference_.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_bitfield_tuple__and__bitfield_reference_.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_"></a><a class="link" href="_bitfield_tuple__and__bitfield_reference_.html" title="bitfield_tuple and bitfield_reference"><code class="computeroutput"><span class="identifier">bitfield_tuple</span></code> and <code class="computeroutput"><span class="identifier">bitfield_reference</span></code></a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_._code__phrase_role__identifier__bitfield_tuple__phrase___code__interface"></a><h5>
-<a name="id2857289"></a>
+<a name="id2948799"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_._code__phrase_role__identifier__bitfield_tuple__phrase___code__interface"><code class="computeroutput"><span class="identifier">bitfield_tuple</span></code> interface</a>
</h5>
<p>
@@ -31,7 +31,7 @@
portion of the interface.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.template_interface"></a><h5>
-<a name="id2857352"></a>
+<a name="id2948862"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.template_interface">Template
Interface</a>
</h5>
@@ -54,7 +54,7 @@
doesn't have a value associated with it).
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.runtime_support_interface"></a><h5>
-<a name="id2857508"></a>
+<a name="id2949018"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.runtime_support_interface">Runtime
Support Interface</a>
</h5>
@@ -71,7 +71,7 @@
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>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.include_files"></a><h6>
-<a name="id2857625"></a>
+<a name="id2949134"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.include_files">Include
Files</a>
</h6>
@@ -88,7 +88,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.template_signature"></a><h6>
-<a name="id2857735"></a>
+<a name="id2949245"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.template_signature">Template
Signature</a>
</h6>
@@ -102,7 +102,7 @@
reguarding macros.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.types"></a><h6>
-<a name="id2857824"></a>
+<a name="id2949334"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.types">types</a>
</h6>
<p>
@@ -184,7 +184,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.template_members"></a><h6>
-<a name="id2858152"></a>
+<a name="id2949662"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.template_members">Template
Members</a>
</h6>
@@ -262,7 +262,7 @@
</tr></tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_._code__phrase_role__identifier__bitfield_reference__phrase___code__internal_types"></a><h6>
-<a name="id2858404"></a>
+<a name="id2949914"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_._code__phrase_role__identifier__bitfield_reference__phrase___code__internal_types"><code class="computeroutput"><span class="identifier">bitfield_reference</span></code> Internal Types</a>
</h6>
<p>
@@ -331,7 +331,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.bitfield_reference_constructors"></a><h6>
-<a name="id2858658"></a>
+<a name="id2950167"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.bitfield_reference_constructors">bitfield_reference
constructors</a>
</h6>
@@ -415,7 +415,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.bitfield_reference_operators"></a><h6>
-<a name="id2858882"></a>
+<a name="id2950392"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.bitfield_reference_operators">bitfield_reference
operators</a>
</h6>
@@ -503,7 +503,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.constructors"></a><h6>
-<a name="id2859140"></a>
+<a name="id2950666"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.constructors">Constructors</a>
</h6>
<div class="informaltable"><table class="table">
@@ -591,7 +591,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.operators"></a><h6>
-<a name="id2859391"></a>
+<a name="id2950933"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.operators">Operators</a>
</h6>
<div class="informaltable"><table class="table">
@@ -675,7 +675,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.member_functions"></a><h6>
-<a name="id2859633"></a>
+<a name="id2951193"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.member_functions">Member
functions</a>
</h6>
@@ -783,7 +783,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.preconditions_on_the__code__phrase_role__identifier__bitfield_tuple__phrase___code__template"></a><h6>
-<a name="id2860124"></a>
+<a name="id2951688"></a>
<a class="link" href="_bitfield_tuple__and__bitfield_reference_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._bitfield_tuple__and__bitfield_reference_.preconditions_on_the__code__phrase_role__identifier__bitfield_tuple__phrase___code__template">Preconditions
on the <code class="computeroutput"><span class="identifier">bitfield_tuple</span></code>
template</a>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_bit_align_.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_bit_align_.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_bit_align_.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_"></a><a class="link" href="_struct_bit_align_.html" title="struct bit_align"><code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">bit_align</span></code></a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.description"></a><h5>
-<a name="id2862324"></a>
+<a name="id2953888"></a>
<a class="link" href="_struct_bit_align_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.description">Description</a>
</h5>
<p>
@@ -43,7 +43,7 @@
</p></td></tr>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.template_signature"></a><h5>
-<a name="id2862471"></a>
+<a name="id2954034"></a>
<a class="link" href="_struct_bit_align_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.template_signature">Template
Signature</a>
</h5>
@@ -52,7 +52,7 @@
<span class="identifier">bit_align</span><span class="special">;</span></code>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.header_file_locaton"></a><h5>
-<a name="id2862556"></a>
+<a name="id2954120"></a>
<a class="link" href="_struct_bit_align_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.header_file_locaton">Header
file Locaton</a>
</h5>
@@ -65,7 +65,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.example"></a><h5>
-<a name="id2862662"></a>
+<a name="id2954226"></a>
<a class="link" href="_struct_bit_align_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_bit_align_.example">Example</a>
</h5>
<p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_filler_.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_filler_.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_filler_.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_"></a><a class="link" href="_struct_filler_.html" title="struct filler"><code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">filler</span></code></a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.description"></a><h5>
-<a name="id2860984"></a>
+<a name="id2952548"></a>
<a class="link" href="_struct_filler_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.description">Description</a>
</h5>
<p>
@@ -30,7 +30,7 @@
position of the next bitfield specified in the template parameter list.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.template_signature"></a><h5>
-<a name="id2861031"></a>
+<a name="id2952595"></a>
<a class="link" href="_struct_filler_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.template_signature">Template
Signature</a>
</h5>
@@ -39,7 +39,7 @@
<span class="identifier">filler</span><span class="special">;</span></code>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.header_file_locaton"></a><h5>
-<a name="id2861117"></a>
+<a name="id2952680"></a>
<a class="link" href="_struct_filler_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.header_file_locaton">Header
file Locaton</a>
</h5>
@@ -52,7 +52,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.example"></a><h5>
-<a name="id2861223"></a>
+<a name="id2952786"></a>
<a class="link" href="_struct_filler_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_filler_.example">Example</a>
</h5>
<p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_flag_.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_flag_.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_flag_.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_"></a><a class="link" href="_struct_flag_.html" title="struct flag"><code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">flag</span></code></a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.description"></a><h5>
-<a name="id2861790"></a>
+<a name="id2953354"></a>
<a class="link" href="_struct_flag_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.description">Description</a>
</h5>
<p>
@@ -45,7 +45,7 @@
would have.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.template_signature"></a><h5>
-<a name="id2862077"></a>
+<a name="id2953640"></a>
<a class="link" href="_struct_flag_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.template_signature">Template
Signature</a>
</h5>
@@ -54,7 +54,7 @@
<span class="identifier">flag</span><span class="special">;</span></code>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.header_file_locaton"></a><h5>
-<a name="id2862154"></a>
+<a name="id2953718"></a>
<a class="link" href="_struct_flag_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.header_file_locaton">Header
file Locaton</a>
</h5>
@@ -67,7 +67,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.example"></a><h5>
-<a name="id2862263"></a>
+<a name="id2953826"></a>
<a class="link" href="_struct_flag_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_flag_.example">Example</a>
</h5>
<p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_member_.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_member_.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_member_.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_"></a><a class="link" href="_struct_member_.html" title="struct member"><code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">member</span></code></a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.description"></a><h5>
-<a name="id2861288"></a>
+<a name="id2952852"></a>
<a class="link" href="_struct_member_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.description">Description</a>
</h5>
<p>
@@ -93,7 +93,7 @@
</tbody>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.template_signature"></a><h5>
-<a name="id2861502"></a>
+<a name="id2953065"></a>
<a class="link" href="_struct_member_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.template_signature">Template
Signature</a>
</h5>
@@ -103,7 +103,7 @@
<span class="identifier">member</span><span class="special">;</span></code>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.header_file_locaton"></a><h5>
-<a name="id2861619"></a>
+<a name="id2953183"></a>
<a class="link" href="_struct_member_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.header_file_locaton">Header
file Locaton</a>
</h5>
@@ -116,7 +116,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.example"></a><h5>
-<a name="id2861726"></a>
+<a name="id2953290"></a>
<a class="link" href="_struct_member_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_member_.example">Example</a>
</h5>
<p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_storage_.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_storage_.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__class_reference/_struct_storage_.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_"></a><a class="link" href="_struct_storage_.html" title="struct storage"><code class="computeroutput"><span class="keyword">struct</span> <span class="identifier">storage</span></code></a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.description"></a><h5>
-<a name="id2862727"></a>
+<a name="id2954290"></a>
<a class="link" href="_struct_storage_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.description">Description</a>
</h5>
<p>
@@ -39,7 +39,7 @@
and accept values in the endianness of your native machine.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.template_signature"></a><h5>
-<a name="id2862827"></a>
+<a name="id2954391"></a>
<a class="link" href="_struct_storage_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.template_signature">Template
Signature</a>
</h5>
@@ -48,7 +48,7 @@
<span class="identifier">storage</span><span class="special">;</span></code>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.header_file_locaton"></a><h5>
-<a name="id2862906"></a>
+<a name="id2954469"></a>
<a class="link" href="_struct_storage_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.header_file_locaton">Header
file Locaton</a>
</h5>
@@ -61,7 +61,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.example"></a><h5>
-<a name="id2863011"></a>
+<a name="id2954575"></a>
<a class="link" href="_struct_storage_.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__class_reference._struct_storage_.example">Example</a>
</h5>
<p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/code_generation_macros.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/code_generation_macros.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/code_generation_macros.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -21,7 +21,7 @@
Generation Macros</a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__macro_reference.code_generation_macros.macros"></a><h6>
-<a name="id2863374"></a>
+<a name="id2954937"></a>
<a class="link" href="code_generation_macros.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__macro_reference.code_generation_macros.macros">Macros</a>
</h6>
<p>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/parameter_adjustment_macros.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/parameter_adjustment_macros.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/_bitfield_tuple__macro_reference/parameter_adjustment_macros.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -21,7 +21,7 @@
Adjustment macros</a>
</h5></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__macro_reference.parameter_adjustment_macros.template_parameter_control"></a><h6>
-<a name="id2863095"></a>
+<a name="id2954658"></a>
<a class="link" href="parameter_adjustment_macros.html#boost_integer_bits_masks_extension.bitfield_tuple.reference._bitfield_tuple__macro_reference.parameter_adjustment_macros.template_parameter_control">Template
Parameter Control</a>
</h6>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/boost_fusion_sequence_extension.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/boost_fusion_sequence_extension.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/reference/boost_fusion_sequence_extension.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -21,7 +21,7 @@
Sequence Extension</a>
</h4></div></div></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.reference.boost_fusion_sequence_extension.boost_fusion_sequence_extension"></a><h6>
-<a name="id2864664"></a>
+<a name="id2956227"></a>
<a class="link" href="boost_fusion_sequence_extension.html#boost_integer_bits_masks_extension.bitfield_tuple.reference.boost_fusion_sequence_extension.boost_fusion_sequence_extension">Boost.Fusion
Sequence Extension</a>
</h6>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/getting_started/dependencies.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/getting_started/dependencies.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/getting_started/dependencies.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -45,7 +45,7 @@
</p></td></tr>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.standard_library_includes"></a><h6>
-<a name="id2854362"></a>
+<a name="id2945871"></a>
<a class="link" href="dependencies.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.standard_library_includes">Standard
Library Includes</a>
</h6>
@@ -68,7 +68,7 @@
</li></ul></div>
</li></ul></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.boost_library_includes"></a><h6>
-<a name="id2854446"></a>
+<a name="id2945955"></a>
<a class="link" href="dependencies.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.boost_library_includes">Boost
Library Includes</a>
</h6>
@@ -210,7 +210,7 @@
</li>
</ul></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.bitfield_tuple_specific_headers"></a><h5>
-<a name="id2854760"></a>
+<a name="id2946270"></a>
<a class="link" href="dependencies.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.bitfield_tuple_specific_headers">Bitfield
Tuple Specific Headers</a>
</h5>
@@ -297,7 +297,7 @@
</li>
</ul></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.bitfield_tuple_fusion_extension"></a><h6>
-<a name="id2855059"></a>
+<a name="id2946569"></a>
<a class="link" href="dependencies.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.bitfield_tuple_fusion_extension">Bitfield
Tuple Fusion Extension</a>
</h6>
@@ -335,7 +335,7 @@
</ul></div>
</li></ul></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.boost_vault_includes"></a><h6>
-<a name="id2855161"></a>
+<a name="id2946671"></a>
<a class="link" href="dependencies.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.boost_vault_includes">Boost
Vault Includes</a>
</h6>
@@ -347,7 +347,7 @@
</li></ul></div>
</li></ul></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.boost_integer_bit_mask_includes"></a><h6>
-<a name="id2855199"></a>
+<a name="id2946709"></a>
<a class="link" href="dependencies.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.getting_started.dependencies.boost_integer_bit_mask_includes">Boost.integer
Bit Mask Includes</a>
</h6>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/tutorial.html
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/tutorial.html (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/html/boost_integer_bits_masks_extension/bitfield_tuple/users_guide/tutorial.html 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -25,7 +25,7 @@
and all of the different functionalities it provides.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_1__the_basics"></a><h6>
-<a name="id2855332"></a>
+<a name="id2946841"></a>
<a class="link" href="tutorial.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_1__the_basics">Part
1: The Basics</a>
</h6>
@@ -80,7 +80,7 @@
a width of 2 bits.
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_2__using_the_tuple"></a><h5>
-<a name="id2855981"></a>
+<a name="id2947491"></a>
<a class="link" href="tutorial.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_2__using_the_tuple">Part
2: Using the tuple</a>
</h5>
@@ -147,7 +147,7 @@
<p>
</p>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_3__slightly_more_advanced"></a><h6>
-<a name="id2856680"></a>
+<a name="id2948189"></a>
<a class="link" href="tutorial.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_3__slightly_more_advanced">Part
3: Slightly More Advanced</a>
</h6>
@@ -261,7 +261,7 @@
</p></td></tr>
</table></div>
<a name="boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_4__fusion_sequence_extension"></a><h6>
-<a name="id2857058"></a>
+<a name="id2948568"></a>
<a class="link" href="tutorial.html#boost_integer_bits_masks_extension.bitfield_tuple.users_guide.tutorial.part_4__fusion_sequence_extension">Part
4: Fusion Sequence extension</a>
</h6>
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-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -20,7 +20,7 @@
</h3></div></div>
<div><p class="copyright">Copyright © 2010 Brian Bartman</p></div>
<div><div class="legalnotice">
-<a name="id2799374"></a><p>
+<a name="id2890305"></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>
@@ -33,9 +33,13 @@
File Summary</a></span></dt>
<dt><span class="section">Bit Masks</span></dt>
<dd><dl>
+<dt><span class="section">Overview</span></dt>
+<dd><dl>
+<dt><span class="section">Description</span></dt>
+<dt><span class="section">rationale</span></dt>
+</dl></dd>
<dt><span class="section"><a href="boost_integer_bits_masks_extension/bit_masks/bit_mask_purpose.html">
Purpose</a></span></dt>
-<dt><span class="section">Overview</span></dt>
<dt><span class="section"><a href="integral_mask/bit_masks/integral_mask.html"> integral_mask
type</a></span></dt>
<dt><span class="section"> high_bits_mask</span></dt>
@@ -115,7 +119,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: July 06, 2010 at 12:42:49 GMT</small></p></td>
+<td align="left"><p><small>Last revised: July 06, 2010 at 14:15:42 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/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-07-06 10:20:58 EDT (Tue, 06 Jul 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="id2869090"></a>
+<a name="id2960652"></a>
<a class="link" href="rationale.html#rationale.rationale.project_data_structure_motivation_and_rationale">Project
Data Structure Motivation and Rationale</a>
</h4>
Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/main.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/main.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/main.qbk 2010-07-06 10:20:58 EDT (Tue, 06 Jul 2010)
@@ -64,51 +64,9 @@
]
[endsect]
-[section Bit Masks]
-[section Overview]
-[endsect]
-
-[section:bit_mask_purpose Purpose]
-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 `integral_constant`
-provided by boost.type_traits library. All masks are able to be treated as the
-`integral_constant` type. All masks provide the following three compile time accessible
-features. They all provide `::type`,`::value_type` and `::value` 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,
-[c++]
-``
-#include <boost/integer/integral_mask.hpp>
-
-using namespace boost;
-
-
-int main() {
- int t = 0xdeadbeef;
- typedef integral_mask<int, 3> mask_type;
-
- int unmasked_t = t & mask_type();
- return 0;
-}
-``
-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.
-[note All masks are trivially default constructible and destructible.]
+[include bit_masks.qbk]
-[endsect]
-
-[include:integral_mask integral_mask.qbk]
-[include:high_bits_mask high_bits.qbk]
-[include:low_bits_mask low_bits.qbk]
-[include:bits_mask bits_mask.qbk]
-[endsect]
[include:bitfield_tuple bitfield_tuple.qbk]
[include:rationale rationale.qbk]
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