$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r63865 - sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc9
From: bbartmanboost_at_[hidden]
Date: 2010-07-11 09:58:57
Author: bbartman
Date: 2010-07-11 09:58:54 EDT (Sun, 11 Jul 2010)
New Revision: 63865
URL: http://svn.boost.org/trac/boost/changeset/63865
Log:
completed another draft of the make_bitfield_tuple function for MSVC 
Text files modified: 
   sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc9/msvc_make_bitfield_tuple_fix.hpp |    37 ++++++++++++++++++++++++++++---------   
   1 files changed, 28 insertions(+), 9 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc9/msvc_make_bitfield_tuple_fix.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc9/msvc_make_bitfield_tuple_fix.hpp	(original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc9/msvc_make_bitfield_tuple_fix.hpp	2010-07-11 09:58:54 EDT (Sun, 11 Jul 2010)
@@ -41,14 +41,14 @@
  *  This make the typename T##N = mpl::void_ pattern.
  */
 #define BOOST_MAKE_BFT_PARAM(z, n, data ) \
-    typename T ## n = mpl::void_*
+    typename T ## n
 
 /** Makes the T0 through TN parameter list for the 
  *  Generates pattern.
- *  typename T0 = mpl::void_*, ... typename TN = mpl::void_*
+ *  typename T0, ... typename TN
  */
-#define BOOST_MAKE_BFT_TEMPLATE_PARAMETERS() \
-    BOOST_PP_ENUM(  BOOST_BFT_PARAM_COUNT,\
+#define BOOST_MAKE_BFT_TEMPLATE_PARAMETERS(N) \
+    BOOST_PP_ENUM(  N,\
                     BOOST_MAKE_BFT_PARAM, \
                     BOOST_BFT_NOTHING )
 
@@ -57,35 +57,54 @@
  *  function template.
  */
 #define BOOST_MAKE_BFT_FUNCTION_PARAM(z, n, data ) \
-    T ## n parameter ## n = 0
+    T ## n parameter ## n
 
 /** used for generating the parameters for a the make_bitfield_tuple
  *  funciton.
  *  Generates pattern
- *  T0 = 0, ... TN = 0 
+ *  T0 parameter0 , ... TN parametern 
  */
-#define BOOST_MAKE_BFT_FUNCTION_PARAMETERS() \
-    BOOST_PP_ENUM(  BOOST_BFT_PARAM_COUNT,\
+#define BOOST_MAKE_BFT_FUNCTION_PARAMETERS(N) \
+    BOOST_PP_ENUM(  N,\
                     BOOST_MAKE_BFT_FUNCTION_PARAM, \
                     BOOST_BFT_NOTHING )
 
 #define BOOST_MAKE_BFT_ASSIGN_FUNCTION_CALL(z,n,data)\
     detail::assign_parameter_to_bft<n>(bft, parameter##n);
 
-#define BOOST_MAKE_BFT_GENERATE_ASSIGNMENT_CALLS() \
+#define BOOST_MAKE_BFT_GENERATE_ASSIGNMENT_CALLS( TO ) \
     BOOST_PP_REPEAT_FROM_TO( \
         0,\
+        TO, \
+        BOOST_MAKE_BFT_ASSIGN_FUNCTION_CALL,\
+        BOOST_BFT_NOTHING )
+
+
+#define BOOST_MAKE_BFT_FUNCTION(Z, N, DATA)                                   \
+    template <typename BitfieldTuple, BOOST_MAKE_BFT_TEMPLATE_PARAMETERS(N)>  \
+    BitfieldTuple make_bitfield_tuple(BOOST_MAKE_BFT_FUNCTION_PARAMETERS(N)){ \
+        BitfieldTuple bft;                                                    \
+        BOOST_MAKE_BFT_GENERATE_ASSIGNMENT_CALLS(N);                          \
+        return bft;                                                           \
+    }
+
+#define BOOST_MAKE_BFT_FUNCTION_OVERLOADS() \
+    BOOST_PP_REPEAT_FROM_TO( \
+        1,\
         BOOST_BFT_PARAM_COUNT, \
         BOOST_MAKE_BFT_ASSIGN_FUNCTION_CALL,\
         BOOST_BFT_NOTHING )
 
 
+BOOST_MAKE_BFT_FUNCTION_OVERLOADS()
+/*
 template <typename BitfieldTuple, BOOST_MAKE_BFT_TEMPLATE_PARAMETERS()>
 BitfieldTuple make_bitfield_tuple(BOOST_MAKE_BFT_FUNCTION_PARAMETERS()) {
     BitfieldTuple bft;
     BOOST_MAKE_BFT_GENERATE_ASSIGNMENT_CALLS();
     return bft;
 }
+*/
 
 
 }}} // end boost::detail::msvc_fixes