Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63238 - in sandbox/SOC/2010/bit_masks: boost/integer/details boost/integer/details/bft lib/integer/test lib/integer/test/bft_testing
From: bbartmanboost_at_[hidden]
Date: 2010-06-22 11:14:34


Author: bbartman
Date: 2010-06-22 11:14:32 EDT (Tue, 22 Jun 2010)
New Revision: 63238
URL: http://svn.boost.org/trac/boost/changeset/63238

Log:
completed the addition of the filler class this allows for the user to specify empty bits to be set inside of the bitfield_tuples internal storage
Added:
   sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/filler_test.cpp (contents, props changed)
Removed:
   sandbox/SOC/2010/bit_masks/boost/integer/details/bit_filler.hpp
Text files modified:
   sandbox/SOC/2010/bit_masks/boost/integer/details/bft/arg_parse_impl.hpp | 37 +++++++++++++++++++++++++++++++++++--
   sandbox/SOC/2010/bit_masks/boost/integer/details/filler.hpp | 21 +++++++++++++++++++++
   sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2 | 1 +
   3 files changed, 57 insertions(+), 2 deletions(-)

Modified: sandbox/SOC/2010/bit_masks/boost/integer/details/bft/arg_parse_impl.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/details/bft/arg_parse_impl.hpp (original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/details/bft/arg_parse_impl.hpp 2010-06-22 11:14:32 EDT (Tue, 22 Jun 2010)
@@ -4,8 +4,8 @@
 // http://www.boost.org/LICENSE_1_0.txt)
 
 
-#ifndef BOOST_BITFIELD_TUPLE_bft_arg_parse_implHPP
-#define BOOST_BITFIELD_TUPLE_bft_arg_parse_implHPP
+#ifndef BOOST_BITFIELD_TUPLE_BFT_ARG_PARSE_IMPL_HPP
+#define BOOST_BITFIELD_TUPLE_BFT_ARG_PARSE_IMPL_HPP
 #include <boost/mpl/vector.hpp>
 #include <boost/mpl/void.hpp>
 #include <boost/mpl/push_back.hpp>
@@ -14,6 +14,7 @@
 #include <boost/mpl/find_if.hpp>
 #include <boost/integer/details/bft/name_lookup.hpp>
 #include <boost/integer/details/bit_flag.hpp>
+#include <boost/integer/details/filler.hpp>
 
 namespace boost { namespace details {
 
@@ -232,6 +233,38 @@
> type;
     };
 };
+/* Specialization for filler. */
+template < std::size_t PaddingBits,
+ typename StoragePolicy,
+ typename FieldVector,
+ typename Offset
+>
+struct bft_arg_parse_impl <
+ filler<
+ PaddingBits
+ >,
+ StoragePolicy,
+ FieldVector,
+ Offset >
+{
+ typedef filler<PaddingBits> param;
+ typedef FieldVector field_vector;
+ typedef StoragePolicy storage_policy;
+ typedef mpl::size_t<PaddingBits + Offset::value > offset;
+
+ typedef bft_arg_parse_impl<param,storage_policy,field_vector,offset> type;
+
+ template <typename NextParam>
+ struct process {
+ typedef bft_arg_parse_impl<
+ NextParam,
+ storage_policy,
+ field_vector,
+ offset
+ > type;
+ };
+};
+
 
 
 

Deleted: sandbox/SOC/2010/bit_masks/boost/integer/details/bit_filler.hpp
==============================================================================

Modified: sandbox/SOC/2010/bit_masks/boost/integer/details/filler.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/details/filler.hpp (original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/details/filler.hpp 2010-06-22 11:14:32 EDT (Tue, 22 Jun 2010)
@@ -0,0 +1,21 @@
+// Copyright 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)
+
+
+#ifndef BOOST_BITFIELD_TUPLE_FILLER_HPP
+#define BOOST_BITFIELD_TUPLE_FILLER_HPP
+#include <cstddef>
+
+namespace boost {
+
+/** Template is used to specify a size or ammound of bits which is
+ * not to be used but instead to be filled with padding or unused bits.
+ */
+template < std::size_t N>
+struct filler;
+
+} // end boost
+
+#endif

Modified: sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2 (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2 2010-06-22 11:14:32 EDT (Tue, 22 Jun 2010)
@@ -40,5 +40,6 @@
         [ run bft_testing/fusion_iterator_testing.cpp ]
         [ run bft_testing/fusion_integration_testing.cpp ]
         [ run bft_testing/flag_test.cpp ]
+ [ run bft_testing/filler_test.cpp ]
     ;
 

Added: sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/filler_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/filler_test.cpp 2010-06-22 11:14:32 EDT (Tue, 22 Jun 2010)
@@ -0,0 +1,36 @@
+// Copyright 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)
+
+
+#include <boost/integer/bitfield_tuple.hpp>
+#include <boost/assert.hpp>
+
+
+using namespace boost;
+
+struct red;
+struct green;
+struct pink;
+struct blue;
+struct salmon;
+
+typedef bitfield_tuple<
+ member<char,red,4>,
+ member<unsigned char, green,5>,
+ storage<std::size_t>,
+ filler<3>,
+ member<int, salmon, 16>,
+ flag<blue>
+> test_tuple;
+
+
+int main() {
+
+
+ // BOOST_ASSERT(( ));
+ return 0;
+}
+
+


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