|
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