Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63490 - in sandbox/SOC/2010/bit_masks/lib/integer/doc: bft_doc/reference/class_reference html html/bits_mask html/high_bits_mask html/integral_mask html/low_bits_mask html/rationale
From: bbartmanboost_at_[hidden]
Date: 2010-07-02 14:54:26


Author: bbartman
Date: 2010-07-01 13:25:56 EDT (Thu, 01 Jul 2010)
New Revision: 63490
URL: http://svn.boost.org/trac/boost/changeset/63490

Log:
finished first draft of bitfield_tuple's basic class documentation and bitfield_reference documentation
Text files modified:
   sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/reference/class_reference/bitfield_tuple.qbk | 234 +++++++++++++++++++++++++++++++++++++++
   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
   7 files changed, 252 insertions(+), 22 deletions(-)

Modified: sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/reference/class_reference/bitfield_tuple.qbk
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/reference/class_reference/bitfield_tuple.qbk (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/doc/bft_doc/reference/class_reference/bitfield_tuple.qbk 2010-07-01 13:25:56 EDT (Thu, 01 Jul 2010)
@@ -34,7 +34,237 @@
 `bitfield_tuple` still provides the regular `get<Index>()` by index function as
 boost.tuple).
 
-The following table lists all constructors, destructors, template members and
-member functions.
+[h5 Include Files]
 
+Header file:
+``
+#include <boost/bitfield_tuple.hpp>
+``
+Forward declaration file:
+``
+#include <boost/bitfield_tuple_fwd.hpp>
+``
+
+[h5 Template Signature]
+``
+tempate <typename... Args> struct bitfield_tuple;
+``
+For additional information on creating specilizations over the
+`bitfield_tuple`'s implementation documentation reguarding macros.
+
+[h5 types]
+`N` is used to represent a `bitfield_tuple`.
+
+[table
+ [
+ [Type]
+ [Description]
+ ]
+ [
+ [`N::members`]
+ [ This is an boost.mpl sequence, specifically `mpl::vector`. `members`
+holds the information about the different member within the bitfield_tuple. The
+only reason this is part of the public interface is so that the fusion sequence
+can be made to work correctly. One should never have to use the `members` type
+directly, however, if you must the elements contained within are of type
+`bitfeild_element` mentioned more in the implementation section.]
+ ]
+ [
+ [`N::storage_type`]
+ [ The integral type being used to store bitfields within the
+`bitfield_tuple`. For more information about how this type is either deduced or
+supplied see the `struct storage` section of the class reference documentation.]
+ ]
+ [
+ [`N::bits_used`]
+ [ The number of bits offset by the fields supplied by the user. Bits
+used is of type `mpl::size_t<M>` where `M` is the sum of the bits use by all
+bitfields and filler bits within the `bitfield_tuple`. This is also the index of
+of the first bit of the next bitfield that would be added into the
+`bitfield_tuple`. ]
+ ]
+]
+
+[h5 Template Members]
+The `bitfield_reference` type is responsible for acting as the proxy reference
+type into the storage of a `bitfield_tuple`, This works similar to the proxy
+reference type supplied by `std::vector<bool>` specilization.
+
+[note If one wishes to work with the reference direcrly please not that the
+`const`'ness of the `BitfieldElement` template parameter is used to specify if
+reference type is a const or non const type. This is due to construction of the
+structure which is repsonsible to extracting or storing data within each
+bitfield.]
+
+[note The `bitfieldElement` type is also used to specify the bitfield to
+retrieve and store data within.]
+
+[table
+ [
+ [Name]
+ [Signature]
+ [Description]
+ ]
+ [
+ [`bitfield_reference`]
+ [`N::template <typename BitfieldElement> bitfield_reference;`]
+ [ This is the proxy reference type use to create a fake reference to
+a bitfield within the bitfield_tuple.]
+ ]
+]
+
+[h5 `bitfield_reference` Internal Types]
+`ref` refers to a `bitfield_reference` type
+[table
+ [
+ [Type]
+ [Description]
+ ]
+ [
+ [`ref::return_type`]
+ [The return type specified by the user, via either a member or flag
+parameter.]
+ ]
+ [
+ [`ref::storage_t`]
+ [The storage type with the same `const` ness as the `BitfieldElement`
+template parameter.]
+ ]
+ [
+ [`ref::field_type`]
+ [ The `boost::integer::bitfield` that relates to the data you are
+storing within the integral value. This is the type which does the actual
+retrieval and storage of data into and from the `bitfield_tuple`. ]
+ ]
+]
+
+[h5 bitfield_reference constructors]
+[table
+ [
+ [Name]
+ [Constructor Signature]
+ [Exception Safty]
+ [Description]
+ ]
+ [
+ [Reference Constructor]
+ [ `explicit bitfield_reference(storage_t& field)`]
+ [ TBD ]
+ [ Just like a reference the bitfield_reference is constrctible over the
+type it references. ]
+ ]
+ [
+ [Copy Constructor]
+ [ `bitfield_reference( bitfield_reference const& x)`]
+ [ TBD ]
+ [ Copy makes a copy of the reference inside of `x`. ]
+ ]
+]
+
+[h5 bitfield_reference operators]
+[table
+ [
+ [Name]
+ [Signature]
+ [Exception Safty]
+ [Description]
+ ]
+ [
+ [Implicit Conversion Operator]
+ [ `inline operator return_type() const`]
+ [ TBD ]
+ [ Allows the `bitfield_reference` type to be treated as though it is the
+`return_type`. ]
+ ]
+ [
+ [Assignment Operator]
+ [ `bitfield_reference const& operator=(return_type const& rhs)`]
+ [ TBD ]
+ [ takes the value `rhs` and stores its value in the corrosponding
+bitfield in the storage of the `bitfield_tuple`.]
+ ]
+]
+
+
+
+
+[h5 Constructors]
+[table
+ [
+ [Name]
+ [Constructor Signature]
+ [Exception Safty]
+ [Description]
+ ]
+ [
+ [ Value Constructor ]
+ [ `explicit bitfield_tuple(storage_type x = 0)` ]
+ [ No Throw ]
+ [ This constructor acts as both a default constructor and allows for
+construction over the storage type. This constructor is one way of giving
+a `bitfield_tuple` an initial value. ]
+ ]
+ [
+ [ Copy Constructor ]
+ [ `bitfield_tuple( bitfield_tuple const& x )` ]
+ [ No Throw ]
+ [ Copies the value from `x` into the current `bitfield_tuple`. ]
+ ]
+]
+
+[h5 Operators]
+[table
+ [
+ [Name]
+ [Signature]
+ [Exception Safty]
+ [Description]
+ ]
+ [
+ [Value Assignment Operator]
+ [`bitfield_tuple const& operator=( storage_type const&)`]
+ [ No Throw ]
+ [Assigns a new value to the internal storage of the `bitfield_tuple`.]
+ ]
+ [
+ [Copy Assignment Operator]
+ [`bitfield_tuple const& operator=( bitfield_tuple const&)`]
+ [ No Throw ]
+ [Assigns a new value to the internal storage of the `bitfield_tuple`.]
+ ]
+]
+
+[h5 Member functions]
+[note All of the `bitfield_reference` types returned by the `get` functions
+listed below are deduced at compile time so they are ommited for clarity. ]
+
+[table
+ [
+ [Signature]
+ [Description]
+ ]
+ [
+ [`storage_type data( ) const`]
+ [This returns a copy of the internal storage from within a bitfield
+tuple.]
+ ]
+ [
+ [ `template <typename Name>` [~ `bitfield_reference` type] `get()`]
+ [ Returns a reference type corrisponding to the field stored with `Name`
+specified in the template parameters.]
+ ]
+ [
+ [ `template <typename Name>` [~ `bitfield_reference` type] `get() const`]
+ [ Const version of the above function. ]
+ ]
+ [
+ [ `template <std::size_t Index>` [~ `bitfield_reference` type] `get()`]
+ [ This is the same as the boost.tuple get function. The only difference
+is that it returns a proxy reference type.]
+ ]
+ [
+ [ `template <std::size_t Index>` [~ `bitfield_reference` type] `get() const`]
+ [ Const version of the above function.]
+ ]
+]
 [endsect]

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-07-01 13:25:56 EDT (Thu, 01 Jul 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="id3133569"></a>
+<a name="id2915184"></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="id3133809"></a>
+<a name="id2915424"></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="id3134057"></a>
+<a name="id2915672"></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="id3134421"></a>
+<a name="id2916036"></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="id3134740"></a>
+<a name="id2916355"></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-07-01 13:25:56 EDT (Thu, 01 Jul 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="id3131811"></a>
+<a name="id2913426"></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="id3131947"></a>
+<a name="id2913562"></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="id3132129"></a>
+<a name="id2913744"></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="id3132465"></a>
+<a name="id2914080"></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-07-01 13:25:56 EDT (Thu, 01 Jul 2010)
@@ -20,7 +20,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright &#169; 2010 Brian Bartman</p></div>
 <div><div class="legalnotice">
-<a name="id2536474"></a><p>
+<a name="id2318089"></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>
@@ -107,7 +107,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 01, 2010 at 16:10:37 GMT</small></p></td>
+<td align="left"><p><small>Last revised: July 01, 2010 at 17:24: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-07-01 13:25:56 EDT (Thu, 01 Jul 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="id3080460"></a>
+<a name="id2862075"></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="id3080521"></a>
+<a name="id2862136"></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="id3131228"></a>
+<a name="id2912843"></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="id3131571"></a>
+<a name="id2913186"></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-07-01 13:25:56 EDT (Thu, 01 Jul 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="id3132688"></a>
+<a name="id2914303"></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="id3132822"></a>
+<a name="id2914437"></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="id3133002"></a>
+<a name="id2914617"></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="id3133346"></a>
+<a name="id2914961"></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-07-01 13:25:56 EDT (Thu, 01 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="id3137400"></a>
+<a name="id2861443"></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