Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r55429 - in trunk/boost: config/compiler type_traits
From: john_at_[hidden]
Date: 2009-08-06 05:13:10


Author: johnmaddock
Date: 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
New Revision: 55429
URL: http://svn.boost.org/trac/boost/changeset/55429

Log:
Fixes #2935.
Add new config macro BOOST_MSVC_FULL_VER, and updated type_traits to make use of it.
Text files modified:
   trunk/boost/config/compiler/visualc.hpp | 6 ++++++
   trunk/boost/type_traits/has_new_operator.hpp | 4 ++--
   trunk/boost/type_traits/intrinsics.hpp | 2 +-
   trunk/boost/type_traits/is_abstract.hpp | 4 ++--
   trunk/boost/type_traits/is_base_and_derived.hpp | 4 ++--
   trunk/boost/type_traits/is_convertible.hpp | 2 +-
   trunk/boost/type_traits/is_function.hpp | 4 ++--
   trunk/boost/type_traits/is_member_function_pointer.hpp | 4 ++--
   8 files changed, 18 insertions(+), 12 deletions(-)

Modified: trunk/boost/config/compiler/visualc.hpp
==============================================================================
--- trunk/boost/config/compiler/visualc.hpp (original)
+++ trunk/boost/config/compiler/visualc.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -14,6 +14,12 @@
 
 #define BOOST_MSVC _MSC_VER
 
+#if _MSC_FULL_VER > 100000000
+# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
+#else
+# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
+#endif
+
 // turn off the warnings before we #include anything
 #pragma warning( disable : 4503 ) // warning: decorated name length exceeded
 

Modified: trunk/boost/type_traits/has_new_operator.hpp
==============================================================================
--- trunk/boost/type_traits/has_new_operator.hpp (original)
+++ trunk/boost/type_traits/has_new_operator.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -85,7 +85,7 @@
             BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig<T>(0)));
             BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));
         #else
- #if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+ #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
                 #pragma warning(push)
                 #pragma warning(disable:6334)
             #endif
@@ -93,7 +93,7 @@
             BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig<T>(0)));
             BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));
 
- #if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+ #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
                 #pragma warning(pop)
             #endif
         #endif

Modified: trunk/boost/type_traits/intrinsics.hpp
==============================================================================
--- trunk/boost/type_traits/intrinsics.hpp (original)
+++ trunk/boost/type_traits/intrinsics.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -82,7 +82,7 @@
 # define BOOST_HAS_TYPE_TRAITS_INTRINSICS
 #endif
 
-#if defined(BOOST_MSVC) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >=140050215)
+#if defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215)
 # include <boost/type_traits/is_same.hpp>
 
 # define BOOST_IS_UNION(T) __is_union(T)

Modified: trunk/boost/type_traits/is_abstract.hpp
==============================================================================
--- trunk/boost/type_traits/is_abstract.hpp (original)
+++ trunk/boost/type_traits/is_abstract.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -94,12 +94,12 @@
 #ifdef __GNUC__
    BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0)));
 #else
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
    BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(check_sig<T>(0)));
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
 #endif

Modified: trunk/boost/type_traits/is_base_and_derived.hpp
==============================================================================
--- trunk/boost/type_traits/is_base_and_derived.hpp (original)
+++ trunk/boost/type_traits/is_base_and_derived.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -133,7 +133,7 @@
 template<typename B, typename D>
 struct is_base_and_derived_impl2
 {
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
@@ -156,7 +156,7 @@
 
     BOOST_STATIC_CONSTANT(bool, value =
         sizeof(bd_helper<B,D>::check_sig(Host(), 0)) == sizeof(type_traits::yes_type));
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
 };

Modified: trunk/boost/type_traits/is_convertible.hpp
==============================================================================
--- trunk/boost/type_traits/is_convertible.hpp (original)
+++ trunk/boost/type_traits/is_convertible.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -256,7 +256,7 @@
 #ifdef BOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable:4244)
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(disable:6334)
 #endif
 #endif

Modified: trunk/boost/type_traits/is_function.hpp
==============================================================================
--- trunk/boost/type_traits/is_function.hpp (original)
+++ trunk/boost/type_traits/is_function.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -65,7 +65,7 @@
 template <typename T>
 struct is_function_impl
 {
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
@@ -74,7 +74,7 @@
         bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t))
         == sizeof(::boost::type_traits::yes_type)
         );
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #endif
 };

Modified: trunk/boost/type_traits/is_member_function_pointer.hpp
==============================================================================
--- trunk/boost/type_traits/is_member_function_pointer.hpp (original)
+++ trunk/boost/type_traits/is_member_function_pointer.hpp 2009-08-06 05:13:09 EDT (Thu, 06 Aug 2009)
@@ -64,7 +64,7 @@
 {
     template <typename T> struct result_
     {
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(push)
 #pragma warning(disable:6334)
 #endif
@@ -75,7 +75,7 @@
             bool, value = (
                 1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
             ));
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
+#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
 #pragma warning(pop)
 #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