Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63855 - in sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes: . msvc9
From: bbartmanboost_at_[hidden]
Date: 2010-07-11 08:41:04


Author: bbartman
Date: 2010-07-11 08:41:03 EDT (Sun, 11 Jul 2010)
New Revision: 63855
URL: http://svn.boost.org/trac/boost/changeset/63855

Log:
adding header file for including all of the different fixes which are larger then a few simple lines.
Added:
   sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc_fix_includes.hpp (contents, props changed)
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, 37 insertions(+), 0 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 08:41:03 EDT (Sun, 11 Jul 2010)
@@ -0,0 +1,37 @@
+// Copyright 2010 Brian Bartman.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_BFT_MSVC9_MAKE_BFT_FIX_HPP
+#define BOOST_BFT_MSVC9_MAKE_BFT_FIX_HPP
+
+typedef ::boost::bitfield_tuple< bitfield::storage<int> > fixer_tuple;
+
+/** Used for fixing an inadequacy in MSVC9 which causes my make_bitfield_tuple
+ * function template parameters not to be instantiated unless they are
+ * typedef'ed peior to the function declaration.
+ */
+#define BOOST_MAKE_BFT_HELPER_TYPEDEF(Z, N, DATA) \
+ typedef get_create_parameter<BitfieldTuple,N>::is_valid_index fixer_type ## N;
+
+/** Defines typedefs which prevent the MSVC9 compiler from failing where it
+ * shouldn't
+ * Creates the following pattern
+ * typedef get_create_parameter<BitfieldTuple,0>::is_valid_index fixer_type0;
+ * ...
+ * typedef get_create_parameter<BitfieldTuple,N>::is_valid_index fixer_typeN;
+ */
+#define BOOST_MAKE_BFT_COMPENSATE_FOR_MSVC() \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 0,\
+ BOOST_BFT_PARAM_COUNT, \
+ BOOST_MAKE_BFT_HELPER_TYPEDEF,\
+ BOOST_BFT_NOTHING )
+
+template <typename BitfieldTuple>
+struct msvc9_make_bft_fix {
+ BOOST_MAKE_BFT_COMPENSATE_FOR_MSVC()
+};
+
+#endif

Added: sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/msvc_fixes/msvc_fix_includes.hpp
==============================================================================


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