|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r63867 - in sandbox/SOC/2010/bit_masks/boost/integer/detail/bft: . msvc_fixes/msvc9
From: bbartmanboost_at_[hidden]
Date: 2010-07-11 10:26:13
Author: bbartman
Date: 2010-07-11 10:26:13 EDT (Sun, 11 Jul 2010)
New Revision: 63867
URL: http://svn.boost.org/trac/boost/changeset/63867
Log:
completed another draft of the make_bitfield_tuple function for MSVC
Text files modified:
sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/make_bitfield_tuple.hpp | 3 ++
sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc9/msvc_make_bitfield_tuple_fix.hpp | 49 +++++++++++++++++++++++++++++++++------
2 files changed, 44 insertions(+), 8 deletions(-)
Modified: sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/make_bitfield_tuple.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/make_bitfield_tuple.hpp (original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/make_bitfield_tuple.hpp 2010-07-11 10:26:13 EDT (Sun, 11 Jul 2010)
@@ -117,6 +117,9 @@
template <std::size_t Index, typename BitfieldTuple>
inline void assign_parameter_to_bft(BitfieldTuple&, mpl::void_*) { }
+template <std::size_t Index, typename BitfieldTuple>
+inline void assign_parameter_to_bft(BitfieldTuple&, void*) { }
+
} // end detail
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 10:26:13 EDT (Sun, 11 Jul 2010)
@@ -6,6 +6,10 @@
#ifndef BOOST_BFT_MSVC9_MAKE_BFT_FIX_HPP
#define BOOST_BFT_MSVC9_MAKE_BFT_FIX_HPP
+#include <boost/preprocessor/repetition.hpp>
+#include <boost/preprocessor/arithmetic/sub.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+
namespace boost { namespace detail { namespace msvc_fixes {
/** Used for fixing an inadequacy in MSVC9 which causes my make_bitfield_tuple
* function template parameters not to be instantiated unless they are
@@ -95,19 +99,48 @@
BOOST_MAKE_BFT_ASSIGN_FUNCTION_CALL,\
BOOST_BFT_NOTHING )
-
-
-/*
-template <typename BitfieldTuple, BOOST_MAKE_BFT_TEMPLATE_PARAMETERS()>
-BitfieldTuple make_bitfield_tuple(BOOST_MAKE_BFT_FUNCTION_PARAMETERS()) {
+template <
+ typename BitfieldTuple,
+ typename T0,
+ typename T1,
+ typename T2,
+ typename T3,
+ typename T4,
+ typename T5,
+ typename T6,
+ typename T7,
+ typename T8,
+ typename T9
+>
+BitfieldTuple make_bitfield_tuple(
+ T0 param0 = (void*)0,
+ T1 param1 = (void*)0,
+ T2 param2 = (void*)0,
+ T3 param3 = (void*)0,
+ T4 param4 = (void*)0,
+ T5 param5 = (void*)0,
+ T6 param6 = (void*)0,
+ T7 param7 = (void*)0,
+ T8 param8 = (void*)0,
+ T9 param9 = (void*)0)
+{
BitfieldTuple bft;
- BOOST_MAKE_BFT_GENERATE_ASSIGNMENT_CALLS();
+ detail::assign_parameter_to_bft<0>(bft, param0);
+ detail::assign_parameter_to_bft<1>(bft, param1);
+ detail::assign_parameter_to_bft<2>(bft, param2);
+ detail::assign_parameter_to_bft<3>(bft, param3);
+ detail::assign_parameter_to_bft<4>(bft, param4);
+ detail::assign_parameter_to_bft<5>(bft, param5);
+ detail::assign_parameter_to_bft<6>(bft, param6);
+ detail::assign_parameter_to_bft<7>(bft, param7);
+ detail::assign_parameter_to_bft<8>(bft, param8);
+ detail::assign_parameter_to_bft<9>(bft, param9);
return bft;
}
-*/
+
}}
-BOOST_MAKE_BFT_FUNCTION_OVERLOADS()
+// BOOST_MAKE_BFT_FUNCTION_OVERLOADS()
} // end boost::detail::msvc_fixes
#endif
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