Boost logo

Boost-Commit :

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


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