$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r63356 - in sandbox/SOC/2010/bit_masks: boost/integer/details lib/integer/test lib/integer/test/bft_testing
From: bbartmanboost_at_[hidden]
Date: 2010-06-26 12:21:35
Author: bbartman
Date: 2010-06-26 12:21:34 EDT (Sat, 26 Jun 2010)
New Revision: 63356
URL: http://svn.boost.org/trac/boost/changeset/63356
Log:
completed testing work for deduced internal type this means that the user doesn't havet to supply a storage type although the option to do so is still there
Text files modified: 
   sandbox/SOC/2010/bit_masks/boost/integer/details/bitfield_tuple_impl.hpp                        |    15 +++++++++++++--                         
   sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2                                          |     6 +++++-                                  
   sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_long_long_test.cpp |     7 ++++++-                                 
   sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_test.cpp           |    19 +++++++++++++++++++                     
   4 files changed, 43 insertions(+), 4 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/boost/integer/details/bitfield_tuple_impl.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/details/bitfield_tuple_impl.hpp	(original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/details/bitfield_tuple_impl.hpp	2010-06-26 12:21:34 EDT (Sat, 26 Jun 2010)
@@ -64,18 +64,28 @@
     // extracting te Arguments from processed_args relating to 
     // the storage policy. Also preforming static assertios 
     // where they can be done.
-    typedef typename processed_args::storage_policy     storage_type;
+    typedef typename processed_args::storage_policy     processed_storage_type;
     typedef typename processed_args::field_vector       field_vector;
     typedef typename processed_args::offset             offset;
 
     // Precondition:
     //      A storage policy must be supplied.
-    BOOST_STATIC_ASSERT((
+    /* BOOST_STATIC_ASSERT((
         !is_same<
             storage_type,
             typename mpl::void_
         >::value
     ));
+    */
+    // deducing storage type
+    typedef typename mpl::if_<
+        is_same<
+            processed_storage_type,
+            mpl::void_
+        >,
+        typename details::deduce_storage_type<offset>::type,
+        processed_storage_type
+        >::type                                     storage_type;
 
 
 
@@ -93,4 +103,5 @@
 }} // end boost::details
 
 #undef BOOST_BFT_ARG_PROCESSING
+
 #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-26 12:21:34 EDT (Sat, 26 Jun 2010)
@@ -45,6 +45,10 @@
         [ run bft_testing/align_test.cpp ]
         [ run bft_testing/reference_builder_test.cpp ]
         [ run bft_testing/deduced_storage_type_test.cpp ]
-        [ run bft_testing/deduced_storage_type_long_long_test.cpp ]
+        [ run bft_testing/deduced_storage_type_long_long_test.cpp 
+            :
+            :
+            :
+            <toolset>gcc:<cxxflags>-Wno-long-long <toolset>darwin:<cxxflags>-Wno-long-long ]
     ;
 
Modified: sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_long_long_test.cpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_long_long_test.cpp	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_long_long_test.cpp	2010-06-26 12:21:34 EDT (Sat, 26 Jun 2010)
@@ -16,9 +16,14 @@
 struct blue;
 struct salmon;
 
-
+typedef bitfield_tuple<
+    flag<pink>,
+    bit_align<64>
+>       test_tuple;
 
 
 int main() {
+
+    BOOST_ASSERT(( is_same<test_tuple::storage_type,uint_least64_t>::value ));
     return 0;
 }
Modified: sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_test.cpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_test.cpp	(original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/deduced_storage_type_test.cpp	2010-06-26 12:21:34 EDT (Sat, 26 Jun 2010)
@@ -6,6 +6,7 @@
 
 #include <boost/integer/bitfield_tuple.hpp>
 #include <boost/assert.hpp>
+#include <boost/mpl/assert.hpp>
 
 
 using namespace boost;
@@ -17,8 +18,26 @@
 struct salmon;
 
 
+typedef bitfield_tuple<
+    flag<green>,
+    bit_align<16>
+>       test_16;
+
+typedef bitfield_tuple<
+    flag<pink>,
+    bit_align<8>
+>       test_8;
+
+typedef bitfield_tuple<
+    flag<red>,
+    bit_align<32>
+>       test_32;
+
 
 
 int main() {
+    BOOST_MPL_ASSERT(( is_same<test_8::storage_type,  uint_least8_t> ));
+    BOOST_MPL_ASSERT(( is_same<test_16::storage_type, uint_least16_t> ));
+    BOOST_MPL_ASSERT(( is_same<test_32::storage_type, uint_least32_t> ));
     return 0;
 }