|
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