$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r62646 - sandbox/SOC/2010/bit_masks/boost/integer
From: bbartmanboost_at_[hidden]
Date: 2010-06-09 07:11:35
Author: bbartman
Date: 2010-06-09 07:11:35 EDT (Wed, 09 Jun 2010)
New Revision: 62646
URL: http://svn.boost.org/trac/boost/changeset/62646
Log:
Implemented a preventitive measure which prevents the user from providing something to the bitfield_tuple which is not a member or a storage
Text files modified: 
   sandbox/SOC/2010/bit_masks/boost/integer/bitfield_tuple.hpp |    35 +++++++++++++++++++++++++++++++----     
   1 files changed, 31 insertions(+), 4 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/boost/integer/bitfield_tuple.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/bitfield_tuple.hpp	(original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/bitfield_tuple.hpp	2010-06-09 07:11:35 EDT (Wed, 09 Jun 2010)
@@ -51,7 +51,9 @@
             typename FieldVector,
             typename Offset
 >
-struct bft_impl_ {
+struct bft_impl_;
+#if 0
+{
     typedef Param           param;
     typedef FieldVector     field_vector;
     typedef StoragePolicy   storage_policy;
@@ -69,7 +71,33 @@
         >::type type;
     };
 };
+#endif
+
+/** Specialization over mpl::void_. */
+template <  typename StoragePolicy,
+            typename FieldVector,
+            typename Offset
+>
+struct bft_impl_ <mpl::void_, StoragePolicy, FieldVector, Offset>{
+    typedef mpl::void_           param;
+    typedef FieldVector     field_vector;
+    typedef StoragePolicy   storage_policy;
+    typedef Offset          offset;
+
+    typedef bft_impl_<param,storage_policy,field_vector,offset> type;
+
+    template <typename NextParam>
+    struct process {
+        typedef typename bft_impl_<
+            NextParam,
+            storage_policy,
+            field_vector,
+            offset
+        >::type type;
+    };
+};
 
+/** Specilization for storage type. */
 template <  typename StorageType, 
             typename AllocationPolicy,
             typename StoragePolicy,
@@ -106,7 +134,7 @@
     };
 };
 
-
+/** Specilization for member. */
 template <  typename StoragePolicy,
             typename FieldVector,
             typename Offset,
@@ -167,7 +195,6 @@
             typename T9 = mpl::void_
 >
 struct bitfield_tuple
-    // : // public details::bft_impl_<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>
 {
     typedef typename details::bft_impl_<T0,
             mpl::void_,
@@ -182,7 +209,7 @@
         template process<T6>::type::
         template process<T7>::type::
         template process<T8>::type::
-        template process<T9>::type processed_args;
+        template process<T9>::type      processed_args;
 
 
 };