Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70221 - in trunk: boost/config/compiler boost/type_traits boost/type_traits/detail boost/type_traits/msvc libs/type_traits/test
From: john_at_[hidden]
Date: 2011-03-20 08:19:06


Author: johnmaddock
Date: 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
New Revision: 70221
URL: http://svn.boost.org/trac/boost/changeset/70221

Log:
Fix up type_traits intrinsic support when using the Intel compiler.
Suppress quite a few Intel-12.0 warnings.
Text files modified:
   trunk/boost/config/compiler/intel.hpp | 2 +-
   trunk/boost/type_traits/alignment_of.hpp | 2 +-
   trunk/boost/type_traits/common_type.hpp | 2 +-
   trunk/boost/type_traits/detail/bool_trait_def.hpp | 13 ++++++++++++-
   trunk/boost/type_traits/detail/common_type_imp.hpp | 18 +++++++++---------
   trunk/boost/type_traits/detail/cv_traits_impl.hpp | 2 +-
   trunk/boost/type_traits/detail/size_t_trait_def.hpp | 6 ++++--
   trunk/boost/type_traits/detail/type_trait_def.hpp | 6 ++++++
   trunk/boost/type_traits/integral_promotion.hpp | 20 ++++++++++----------
   trunk/boost/type_traits/intrinsics.hpp | 20 +++++++++++++-------
   trunk/boost/type_traits/is_const.hpp | 4 ++--
   trunk/boost/type_traits/is_convertible.hpp | 2 +-
   trunk/boost/type_traits/is_enum.hpp | 2 +-
   trunk/boost/type_traits/is_function.hpp | 6 +++---
   trunk/boost/type_traits/is_fundamental.hpp | 2 +-
   trunk/boost/type_traits/is_member_function_pointer.hpp | 4 ++--
   trunk/boost/type_traits/is_member_pointer.hpp | 4 ++--
   trunk/boost/type_traits/is_pod.hpp | 2 +-
   trunk/boost/type_traits/is_pointer.hpp | 4 ++--
   trunk/boost/type_traits/is_virtual_base_of.hpp | 4 ++--
   trunk/boost/type_traits/is_volatile.hpp | 4 ++--
   trunk/boost/type_traits/msvc/typeof.hpp | 4 ++--
   trunk/boost/type_traits/promote.hpp | 2 +-
   trunk/boost/type_traits/type_with_alignment.hpp | 4 ++--
   trunk/libs/type_traits/test/test.hpp | 5 +++++
   25 files changed, 87 insertions(+), 57 deletions(-)

Modified: trunk/boost/config/compiler/intel.hpp
==============================================================================
--- trunk/boost/config/compiler/intel.hpp (original)
+++ trunk/boost/config/compiler/intel.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -135,7 +135,7 @@
 template<> struct assert_intrinsic_wchar_t<unsigned short> {};
 #endif
 
-#if _MSC_VER+0 >= 1000
+#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
 # if _MSC_VER >= 1200
 # define BOOST_HAS_MS_INT64
 # endif

Modified: trunk/boost/type_traits/alignment_of.hpp
==============================================================================
--- trunk/boost/type_traits/alignment_of.hpp (original)
+++ trunk/boost/type_traits/alignment_of.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -93,7 +93,7 @@
 #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <typename T>
 struct alignment_of<T&>
- : alignment_of<T*>
+ : public alignment_of<T*>
 {
 };
 #endif

Modified: trunk/boost/type_traits/common_type.hpp
==============================================================================
--- trunk/boost/type_traits/common_type.hpp (original)
+++ trunk/boost/type_traits/common_type.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -141,7 +141,7 @@
     template <class T, class U>
     struct common_type<T, U, void>
 #endif
- : type_traits_detail::common_type_2<T,U>
+ : public type_traits_detail::common_type_2<T,U>
     { };
 
 

Modified: trunk/boost/type_traits/detail/bool_trait_def.hpp
==============================================================================
--- trunk/boost/type_traits/detail/bool_trait_def.hpp (original)
+++ trunk/boost/type_traits/detail/bool_trait_def.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -60,7 +60,7 @@
 #endif
 
 #ifndef BOOST_TT_AUX_BOOL_C_BASE
-# define BOOST_TT_AUX_BOOL_C_BASE(C) : ::boost::integral_constant<bool,C>
+# define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::boost::integral_constant<bool,C>
 #endif
 
 
@@ -68,6 +68,7 @@
 template< typename T > struct trait \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
@@ -80,6 +81,7 @@
 template< typename T1, typename T2 > struct trait \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
 }; \
@@ -91,6 +93,7 @@
 template<> struct trait< sp > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
 }; \
@@ -100,6 +103,7 @@
 template<> struct trait< sp1,sp2 > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
 }; \
@@ -108,6 +112,7 @@
 #define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
 template<> struct trait##_impl< sp > \
 { \
+public:\
     BOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
@@ -115,6 +120,7 @@
 #define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
 template<> struct trait##_impl< sp1,sp2 > \
 { \
+public:\
     BOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
@@ -123,6 +129,7 @@
 template< param > struct trait< sp > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
@@ -131,6 +138,7 @@
 template< param1, param2 > struct trait< sp > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
@@ -139,6 +147,7 @@
 template< param > struct trait< sp1,sp2 > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
 }; \
@@ -148,6 +157,7 @@
 template< param1, param2 > struct trait< sp1,sp2 > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
@@ -155,6 +165,7 @@
 #define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
 template< param > struct trait##_impl< sp1,sp2 > \
 { \
+public:\
     BOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/

Modified: trunk/boost/type_traits/detail/common_type_imp.hpp
==============================================================================
--- trunk/boost/type_traits/detail/common_type_imp.hpp (original)
+++ trunk/boost/type_traits/detail/common_type_imp.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -80,11 +80,11 @@
 
 template< class T >
 struct is_integral_or_enum
- : mpl::or_< is_integral<T>, is_enum<T> >
+ : public mpl::or_< is_integral<T>, is_enum<T> >
 { };
 template<>
 struct is_integral_or_enum< bool >
- : false_type
+ : public false_type
 { };
 
 /*******************************************************************************
@@ -97,7 +97,7 @@
 
 template< class T >
 struct make_unsigned_soft
- : make_unsigned<T>
+ : public make_unsigned<T>
 { };
 template<>
 struct make_unsigned_soft< bool >
@@ -105,7 +105,7 @@
 
 template< class T >
 struct make_signed_soft
- : make_signed<T>
+ : public make_signed<T>
 { };
 template<>
 struct make_signed_soft< bool >
@@ -151,7 +151,7 @@
 
 template< class First, class Last, std::size_t Index >
 struct conversion_test_overloads_iterate
- : conversion_test_overloads_iterate<
+ : public conversion_test_overloads_iterate<
           typename mpl::next< First >::type, Last, Index + 1
>
 {
@@ -168,7 +168,7 @@
 
 template< class Sequence >
 struct conversion_test_overloads
- : conversion_test_overloads_iterate<
+ : public conversion_test_overloads_iterate<
           typename mpl::begin< Sequence >::type,
           typename mpl::end< Sequence >::type,
           0
@@ -187,7 +187,7 @@
     int N = mpl::size< Sequence >::value
>
 struct select
- : mpl::at_c< Sequence, Index >
+ : public mpl::at_c< Sequence, Index >
 { };
 template< class Sequence, int N >
 struct select< Sequence, N, N >
@@ -293,7 +293,7 @@
 
 template<class T, class U, bool b>
 struct common_type_dispatch_on_rvalueness
- : deduce_common_type< T, U, typename nominal_candidates<T,U>::type >
+ : public deduce_common_type< T, U, typename nominal_candidates<T,U>::type >
 { };
 
 template< class T, class U >
@@ -316,7 +316,7 @@
 
 template< class T, class U >
 struct common_type_impl
- : common_type_dispatch_on_rvalueness<T,U, sizeof( ::boost::detail_type_traits_common_type::rvalue_test(
+ : public common_type_dispatch_on_rvalueness<T,U, sizeof( ::boost::detail_type_traits_common_type::rvalue_test(
         declval< bool >() ? declval<T>() : declval<U>() ) ) == sizeof( yes_type ) >
 { };
 

Modified: trunk/boost/type_traits/detail/cv_traits_impl.hpp
==============================================================================
--- trunk/boost/type_traits/detail/cv_traits_impl.hpp (original)
+++ trunk/boost/type_traits/detail/cv_traits_impl.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -77,7 +77,7 @@
 // Use the implementation above for non function pointers
 template <typename T, unsigned Select
   = (unsigned)sizeof(::boost::type_traits::gcc8503::mini_funcptr_tester((T)0)) >
-struct cv_traits_imp : ::boost::type_traits::gcc8503::cv_traits_imp<T> { };
+struct cv_traits_imp : public ::boost::type_traits::gcc8503::cv_traits_imp<T> { };
 
 // Functions are never cv-qualified
 template <typename T> struct cv_traits_imp<T*,1>

Modified: trunk/boost/type_traits/detail/size_t_trait_def.hpp
==============================================================================
--- trunk/boost/type_traits/detail/size_t_trait_def.hpp (original)
+++ trunk/boost/type_traits/detail/size_t_trait_def.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -19,10 +19,10 @@
 #include <cstddef>
 
 #if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
-# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::integral_constant<std::size_t,C>
+# define BOOST_TT_AUX_SIZE_T_BASE(C) public ::boost::integral_constant<std::size_t,C>
 # define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/
 #else
-# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::mpl::size_t<C>
+# define BOOST_TT_AUX_SIZE_T_BASE(C) public ::boost::mpl::size_t<C>
 # define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
     typedef ::boost::mpl::size_t<C> base_; \
     using base_::value; \
@@ -34,6 +34,7 @@
 template< typename T > struct trait \
     : BOOST_TT_AUX_SIZE_T_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
@@ -45,6 +46,7 @@
 template<> struct trait<spec> \
     : BOOST_TT_AUX_SIZE_T_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
 }; \

Modified: trunk/boost/type_traits/detail/type_trait_def.hpp
==============================================================================
--- trunk/boost/type_traits/detail/type_trait_def.hpp (original)
+++ trunk/boost/type_traits/detail/type_trait_def.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -17,6 +17,7 @@
 #define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
 template< typename T > struct trait \
 { \
+public:\
     typedef result type; \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
@@ -27,6 +28,7 @@
 #define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
 template<> struct trait<spec> \
 { \
+public:\
     typedef result type; \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
 }; \
@@ -35,6 +37,7 @@
 #define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
 template<> struct trait##_impl<spec> \
 { \
+public:\
     typedef result type; \
 }; \
 /**/
@@ -42,6 +45,7 @@
 #define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
 template< param > struct trait<spec> \
 { \
+public:\
     typedef result type; \
 }; \
 /**/
@@ -49,6 +53,7 @@
 #define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
 template< param1, param2 > struct trait<spec> \
 { \
+public:\
     typedef result; \
 }; \
 /**/
@@ -56,6 +61,7 @@
 #define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
 template< param > struct trait##_impl<spec> \
 { \
+public:\
     typedef result type; \
 }; \
 /**/

Modified: trunk/boost/type_traits/integral_promotion.hpp
==============================================================================
--- trunk/boost/type_traits/integral_promotion.hpp (original)
+++ trunk/boost/type_traits/integral_promotion.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -24,14 +24,14 @@
 namespace type_traits { namespace detail {
 
 // 4.5/2
-template <class T> struct need_promotion : boost::is_enum<T> {};
+template <class T> struct need_promotion : public boost::is_enum<T> {};
 
 // 4.5/1
-template<> struct need_promotion<char > : true_type {};
-template<> struct need_promotion<signed char > : true_type {};
-template<> struct need_promotion<unsigned char > : true_type {};
-template<> struct need_promotion<signed short int > : true_type {};
-template<> struct need_promotion<unsigned short int> : true_type {};
+template<> struct need_promotion<char > : public true_type {};
+template<> struct need_promotion<signed char > : public true_type {};
+template<> struct need_promotion<unsigned char > : public true_type {};
+template<> struct need_promotion<signed short int > : public true_type {};
+template<> struct need_promotion<unsigned short int> : public true_type {};
 
 
 // Specializations for non-standard types.
@@ -39,7 +39,7 @@
 
 #define BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \
     template<> struct need_promotion<T> \
- : integral_constant<bool, (sizeof(T) < sizeof(int))> {};
+ : public integral_constant<bool, (sizeof(T) < sizeof(int))> {};
 
 // Same set of integral types as in boost/type_traits/is_integral.hpp.
 // Please, keep in sync.
@@ -72,13 +72,13 @@
 
 #ifndef BOOST_NO_INTRINSIC_WCHAR_T
 // 4.5/2
-template<> struct need_promotion<wchar_t> : true_type {};
+template<> struct need_promotion<wchar_t> : public true_type {};
 #endif
 
 // 4.5/3 (integral bit-field) is not supported.
 
 // 4.5/4
-template<> struct need_promotion<bool> : true_type {};
+template<> struct need_promotion<bool> : public true_type {};
 
 
 // Get promoted type by index and cv qualifiers.
@@ -171,7 +171,7 @@
 
 template<class T>
 struct integral_promotion
- : boost::mpl::eval_if<
+ : public boost::mpl::eval_if<
         need_promotion<BOOST_DEDUCED_TYPENAME remove_cv<T>::type>
       , integral_promotion_impl<T>
       , boost::mpl::identity<T>

Modified: trunk/boost/type_traits/intrinsics.hpp
==============================================================================
--- trunk/boost/type_traits/intrinsics.hpp (original)
+++ trunk/boost/type_traits/intrinsics.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -129,16 +129,22 @@
 # include <boost/type_traits/is_reference.hpp>
 # include <boost/type_traits/is_volatile.hpp>
 
+#ifdef BOOST_INTEL
+# define BOOST_INTEL_TT_OPTS || is_pod<T>::value
+#else
+# define BOOST_INTEL_TT_OPTS
+#endif
+
 # define BOOST_IS_UNION(T) __is_union(T)
 # define BOOST_IS_POD(T) __is_pod(T)
 # define BOOST_IS_EMPTY(T) __is_empty(T)
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_constructor(T) && ! ::boost::is_volatile<T>::value)
-# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && ! ::boost::is_volatile<T>::value)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && ! ::boost::is_volatile<T>::value)
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) BOOST_INTEL_TT_OPTS) && !is_reference<T>::value && ! ::boost::is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile<T>::value && ! ::boost::is_const<T>::value)
+# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_INTEL_TT_OPTS)
+# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) BOOST_INTEL_TT_OPTS)
+# define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_reference<T>::value)
+# define BOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_const<T>::value)
 # define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
 
 # define BOOST_IS_ABSTRACT(T) __is_abstract(T)

Modified: trunk/boost/type_traits/is_const.hpp
==============================================================================
--- trunk/boost/type_traits/is_const.hpp (original)
+++ trunk/boost/type_traits/is_const.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -106,7 +106,7 @@
 
 template <bool is_ref, bool array>
 struct is_const_helper
- : ::boost::type_traits::false_result
+ : public ::boost::type_traits::false_result
 {
 };
 
@@ -136,7 +136,7 @@
 
 template <typename T>
 struct is_const_impl
- : is_const_helper<
+ : public is_const_helper<
           is_reference<T>::value
         , is_array<T>::value
>::template result_<T>

Modified: trunk/boost/type_traits/is_convertible.hpp
==============================================================================
--- trunk/boost/type_traits/is_convertible.hpp (original)
+++ trunk/boost/type_traits/is_convertible.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -85,7 +85,7 @@
 
 template <typename From, typename To>
 struct is_convertible_basic_impl
- : does_conversion_exist<From>::template result_<To>
+ : public does_conversion_exist<From>::template result_<To>
 {
 };
 

Modified: trunk/boost/type_traits/is_enum.hpp
==============================================================================
--- trunk/boost/type_traits/is_enum.hpp (original)
+++ trunk/boost/type_traits/is_enum.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -95,7 +95,7 @@
 struct is_enum_helper<false>
 {
     template <typename T> struct type
- : ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
+ : public ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
     {
     };
 };

Modified: trunk/boost/type_traits/is_function.hpp
==============================================================================
--- trunk/boost/type_traits/is_function.hpp (original)
+++ trunk/boost/type_traits/is_function.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -40,7 +40,7 @@
 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
 template<bool is_ref = true>
 struct is_function_chooser
- : ::boost::type_traits::false_result
+ : public ::boost::type_traits::false_result
 {
 };
 
@@ -48,14 +48,14 @@
 struct is_function_chooser<false>
 {
     template< typename T > struct result_
- : ::boost::type_traits::is_function_ptr_helper<T*>
+ : public ::boost::type_traits::is_function_ptr_helper<T*>
     {
     };
 };
 
 template <typename T>
 struct is_function_impl
- : is_function_chooser< ::boost::is_reference<T>::value >
+ : public is_function_chooser< ::boost::is_reference<T>::value >
         ::BOOST_NESTED_TEMPLATE result_<T>
 {
 };

Modified: trunk/boost/type_traits/is_fundamental.hpp
==============================================================================
--- trunk/boost/type_traits/is_fundamental.hpp (original)
+++ trunk/boost/type_traits/is_fundamental.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -22,7 +22,7 @@
 
 template <typename T>
 struct is_fundamental_impl
- : ::boost::type_traits::ice_or<
+ : public ::boost::type_traits::ice_or<
           ::boost::is_arithmetic<T>::value
         , ::boost::is_void<T>::value
>

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 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -55,7 +55,7 @@
 
 template <bool>
 struct is_mem_fun_pointer_select
- : ::boost::type_traits::false_result
+ : public ::boost::type_traits::false_result
 {
 };
 
@@ -83,7 +83,7 @@
 
 template <typename T>
 struct is_member_function_pointer_impl
- : is_mem_fun_pointer_select<
+ : public is_mem_fun_pointer_select<
           ::boost::type_traits::ice_or<
               ::boost::is_reference<T>::value
             , ::boost::is_array<T>::value

Modified: trunk/boost/type_traits/is_member_pointer.hpp
==============================================================================
--- trunk/boost/type_traits/is_member_pointer.hpp (original)
+++ trunk/boost/type_traits/is_member_pointer.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -66,7 +66,7 @@
 
 template <bool>
 struct is_member_pointer_select
- : ::boost::type_traits::false_result
+ : public ::boost::type_traits::false_result
 {
 };
 
@@ -87,7 +87,7 @@
 
 template <typename T>
 struct is_member_pointer_impl
- : is_member_pointer_select<
+ : public is_member_pointer_select<
           ::boost::type_traits::ice_or<
               ::boost::is_reference<T>::value
             , ::boost::is_array<T>::value

Modified: trunk/boost/type_traits/is_pod.hpp
==============================================================================
--- trunk/boost/type_traits/is_pod.hpp (original)
+++ trunk/boost/type_traits/is_pod.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -49,7 +49,7 @@
 #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
 template <typename T, std::size_t sz>
 struct is_pod_impl<T[sz]>
- : is_pod_impl<T>
+ : public is_pod_impl<T>
 {
 };
 #endif

Modified: trunk/boost/type_traits/is_pointer.hpp
==============================================================================
--- trunk/boost/type_traits/is_pointer.hpp (original)
+++ trunk/boost/type_traits/is_pointer.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -113,7 +113,7 @@
 
 template <bool>
 struct is_pointer_select
- : ::boost::type_traits::false_result
+ : public ::boost::type_traits::false_result
 {
 };
 
@@ -133,7 +133,7 @@
 
 template <typename T>
 struct is_pointer_impl
- : is_pointer_select<
+ : public is_pointer_select<
           ::boost::type_traits::ice_or<
               ::boost::is_reference<T>::value
             , ::boost::is_array<T>::value

Modified: trunk/boost/type_traits/is_virtual_base_of.hpp
==============================================================================
--- trunk/boost/type_traits/is_virtual_base_of.hpp (original)
+++ trunk/boost/type_traits/is_virtual_base_of.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -52,14 +52,14 @@
        ~boost_type_traits_internal_struct_Y()throw();
     };
 #else
- struct boost_type_traits_internal_struct_X : Derived, virtual Base
+ struct boost_type_traits_internal_struct_X : public Derived, virtual Base
     {
        boost_type_traits_internal_struct_X();
        boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
        boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
        ~boost_type_traits_internal_struct_X()throw();
     };
- struct boost_type_traits_internal_struct_Y : Derived
+ struct boost_type_traits_internal_struct_Y : public Derived
     {
        boost_type_traits_internal_struct_Y();
        boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);

Modified: trunk/boost/type_traits/is_volatile.hpp
==============================================================================
--- trunk/boost/type_traits/is_volatile.hpp (original)
+++ trunk/boost/type_traits/is_volatile.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -94,7 +94,7 @@
 
 template <bool is_ref, bool array>
 struct is_volatile_helper
- : ::boost::type_traits::false_result
+ : public ::boost::type_traits::false_result
 {
 };
 
@@ -124,7 +124,7 @@
 
 template <typename T>
 struct is_volatile_impl
- : is_volatile_helper<
+ : public is_volatile_helper<
           is_reference<T>::value
         , is_array<T>::value
>::template result_<T>

Modified: trunk/boost/type_traits/msvc/typeof.hpp
==============================================================================
--- trunk/boost/type_traits/msvc/typeof.hpp (original)
+++ trunk/boost/type_traits/msvc/typeof.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -20,7 +20,7 @@
         };
 
         template<typename T, typename ID>
- struct msvc_register_type : msvc_extract_type<ID>
+ struct msvc_register_type : public msvc_extract_type<ID>
         {
             template<>
             struct id2type_impl<true> //VC7.0 specific bugfeature
@@ -36,7 +36,7 @@
         };
 
         template<typename T, typename ID>
- struct msvc_register_type : msvc_extract_type<ID>
+ struct msvc_register_type : public msvc_extract_type<ID>
         {
             typedef msvc_extract_type<ID> base_type;
             struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature

Modified: trunk/boost/type_traits/promote.hpp
==============================================================================
--- trunk/boost/type_traits/promote.hpp (original)
+++ trunk/boost/type_traits/promote.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -19,7 +19,7 @@
 
 template<class T>
 struct promote_impl
- : integral_promotion<
+ : public integral_promotion<
         BOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type
>
 {

Modified: trunk/boost/type_traits/type_with_alignment.hpp
==============================================================================
--- trunk/boost/type_traits/type_with_alignment.hpp (original)
+++ trunk/boost/type_traits/type_with_alignment.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -86,7 +86,7 @@
 {
     template <std::size_t target, class TestType>
     struct apply
- : mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
+ : public mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
     {
         enum { value = (alignment_of<TestType>::value == target) };
     };
@@ -94,7 +94,7 @@
 
 template <bool found, std::size_t target, class TestType>
 struct lower_alignment_helper
- : lower_alignment_helper_impl<found>::template apply<target,TestType>
+ : public lower_alignment_helper_impl<found>::template apply<target,TestType>
 {
 };
 #else

Modified: trunk/libs/type_traits/test/test.hpp
==============================================================================
--- trunk/libs/type_traits/test/test.hpp (original)
+++ trunk/libs/type_traits/test/test.hpp 2011-03-20 08:18:59 EDT (Sun, 20 Mar 2011)
@@ -206,7 +206,12 @@
 // on some compilers):
 //
 typedef int& r_type;
+#ifndef BOOST_INTEL
 typedef const r_type cr_type;
+#else
+// recent Intel compilers generate a hard error on the above:
+typedef r_type cr_type;
+#endif
 # ifdef BOOST_MSVC
 # pragma warning(pop)
 # elif defined(BOOST_INTEL)


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