|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r71481 - in branches/release: boost/type_traits boost/type_traits/detail boost/type_traits/msvc libs/type_traits libs/type_traits/doc libs/type_traits/doc/html libs/type_traits/doc/html/boost_typetraits libs/type_traits/doc/html/boost_typetraits/category libs/type_traits/doc/html/boost_typetraits/category/value_traits libs/type_traits/doc/html/boost_typetraits/examples libs/type_traits/doc/html/boost_typetraits/reference libs/type_traits/doc/html/index libs/type_traits/test
From: john_at_[hidden]
Date: 2011-04-25 08:27:03
Author: johnmaddock
Date: 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
New Revision: 71481
URL: http://svn.boost.org/trac/boost/changeset/71481
Log:
Merge change from Trunk to release.
Added:
branches/release/libs/type_traits/test/common_type_2_test.cpp
- copied unchanged from r71480, /trunk/libs/type_traits/test/common_type_2_test.cpp
Properties modified:
branches/release/boost/type_traits/ (props changed)
branches/release/libs/type_traits/ (props changed)
branches/release/libs/type_traits/doc/ (props changed)
Text files modified:
branches/release/boost/type_traits/add_rvalue_reference.hpp | 3
branches/release/boost/type_traits/alignment_of.hpp | 2
branches/release/boost/type_traits/common_type.hpp | 10 +-
branches/release/boost/type_traits/detail/bool_trait_def.hpp | 13 ++++
branches/release/boost/type_traits/detail/common_type_imp.hpp | 81 +++++++++++++++++++++---------
branches/release/boost/type_traits/detail/cv_traits_impl.hpp | 2
branches/release/boost/type_traits/detail/size_t_trait_def.hpp | 6 +
branches/release/boost/type_traits/detail/type_trait_def.hpp | 6 ++
branches/release/boost/type_traits/has_nothrow_assign.hpp | 16 ++++-
branches/release/boost/type_traits/has_nothrow_constructor.hpp | 24 +++++++-
branches/release/boost/type_traits/has_nothrow_copy.hpp | 24 +++++++-
branches/release/boost/type_traits/has_trivial_assign.hpp | 17 ++++-
branches/release/boost/type_traits/has_trivial_constructor.hpp | 8 +++
branches/release/boost/type_traits/has_trivial_copy.hpp | 25 +++++++-
branches/release/boost/type_traits/has_trivial_destructor.hpp | 17 ++++-
branches/release/boost/type_traits/has_virtual_destructor.hpp | 4 +
branches/release/boost/type_traits/integral_promotion.hpp | 20 +++---
branches/release/boost/type_traits/intrinsics.hpp | 99 +++++++++++---------------------------
branches/release/boost/type_traits/is_const.hpp | 4
branches/release/boost/type_traits/is_convertible.hpp | 27 +++++-----
branches/release/boost/type_traits/is_empty.hpp | 16 ++++-
branches/release/boost/type_traits/is_enum.hpp | 2
branches/release/boost/type_traits/is_function.hpp | 6 +-
branches/release/boost/type_traits/is_fundamental.hpp | 2
branches/release/boost/type_traits/is_member_function_pointer.hpp | 4
branches/release/boost/type_traits/is_member_pointer.hpp | 4
branches/release/boost/type_traits/is_pod.hpp | 14 ++++-
branches/release/boost/type_traits/is_pointer.hpp | 4
branches/release/boost/type_traits/is_union.hpp | 8 +++
branches/release/boost/type_traits/is_virtual_base_of.hpp | 4
branches/release/boost/type_traits/is_volatile.hpp | 4
branches/release/boost/type_traits/msvc/typeof.hpp | 4
branches/release/boost/type_traits/promote.hpp | 2
branches/release/boost/type_traits/remove_pointer.hpp | 53 +++++++++++++++++++
branches/release/boost/type_traits/type_with_alignment.hpp | 4
branches/release/libs/type_traits/doc/Jamfile.v2 | 5 +
branches/release/libs/type_traits/doc/common_type.qbk | 2
branches/release/libs/type_traits/doc/conditional.qbk | 2
branches/release/libs/type_traits/doc/has_nothrow_constructor.qbk | 8 +-
branches/release/libs/type_traits/doc/has_nothrow_copy.qbk | 6 +
branches/release/libs/type_traits/doc/has_trivial_assign.qbk | 9 ++-
branches/release/libs/type_traits/doc/has_trivial_constructor.qbk | 9 ++-
branches/release/libs/type_traits/doc/has_trivial_copy.qbk | 9 ++-
branches/release/libs/type_traits/doc/has_trivial_destructor.qbk | 9 ++-
branches/release/libs/type_traits/doc/has_virtual_destructor.qbk | 8 ++
branches/release/libs/type_traits/doc/history.qbk | 7 ++
branches/release/libs/type_traits/doc/html/boost_typetraits/background.html | 17 +++---
branches/release/libs/type_traits/doc/html/boost_typetraits/category.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/category/alignment.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/category/function.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 3
branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/credits.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples/copy.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples/fill.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples/improved_min.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples/iter.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/history.html | 21 ++++++-
branches/release/libs/type_traits/doc/html/boost_typetraits/intrinsics.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/intro.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/mpl.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html | 19 +++---
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html | 5 +
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/extent.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html | 13 +++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html | 11 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html | 11 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html | 11 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html | 11 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html | 11 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html | 10 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html | 10 +--
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html | 9 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html | 5 -
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html | 4
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html | 14 +++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html | 10 +-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html | 9 ++-
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html | 9 ++
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/rank.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html | 1
branches/release/libs/type_traits/doc/html/boost_typetraits/user_defined.html | 1
branches/release/libs/type_traits/doc/html/index.html | 3
branches/release/libs/type_traits/doc/html/index/s11.html | 3
branches/release/libs/type_traits/doc/html/index/s12.html | 3
branches/release/libs/type_traits/doc/html/index/s13.html | 58 +++++++++++++++++-----
branches/release/libs/type_traits/doc/html/index/s14.html | 85 ++++++++++++++++++++++++++------
branches/release/libs/type_traits/doc/is_base_of.qbk | 9 +-
branches/release/libs/type_traits/doc/is_class.qbk | 6 +
branches/release/libs/type_traits/doc/is_convertible.qbk | 4
branches/release/libs/type_traits/doc/is_empty.qbk | 3
branches/release/libs/type_traits/doc/is_pod.qbk | 8 ++
branches/release/libs/type_traits/doc/is_stateless.qbk | 8 +-
branches/release/libs/type_traits/doc/is_union.qbk | 9 ++-
branches/release/libs/type_traits/doc/is_virtual_base_of.qbk | 5 +
branches/release/libs/type_traits/test/check_type.hpp | 26 ++++++++++
branches/release/libs/type_traits/test/common_type_test.cpp | 103 ++++++++++++++++++++++++++++++++++++++++
branches/release/libs/type_traits/test/has_nothrow_assign_test.cpp | 2
branches/release/libs/type_traits/test/has_nothrow_constr_test.cpp | 2
branches/release/libs/type_traits/test/has_nothrow_copy_test.cpp | 2
branches/release/libs/type_traits/test/has_trivial_assign_test.cpp | 2
branches/release/libs/type_traits/test/has_trivial_copy_test.cpp | 2
branches/release/libs/type_traits/test/has_trivial_destructor_test.cpp | 2
branches/release/libs/type_traits/test/is_convertible_test.cpp | 59 +++++++++++++++++++---
branches/release/libs/type_traits/test/remove_pointer_test.cpp | 7 ++
branches/release/libs/type_traits/test/test.hpp | 11 ++++
169 files changed, 881 insertions(+), 446 deletions(-)
Modified: branches/release/boost/type_traits/add_rvalue_reference.hpp
==============================================================================
--- branches/release/boost/type_traits/add_rvalue_reference.hpp (original)
+++ branches/release/boost/type_traits/add_rvalue_reference.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -28,7 +28,7 @@
// shall name T&&; otherwise, type shall name T. [ Note: This rule reflects
// the semantics of reference collapsing. For example, when a type T names
// a type T1&, the type add_rvalue_reference<T>::type is not an rvalue
-// reference. end note ]
+// reference. -end note ]
//----------------------------------------------------------------------------//
namespace boost {
@@ -65,3 +65,4 @@
#include <boost/type_traits/detail/type_trait_undef.hpp>
#endif // BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
+
Modified: branches/release/boost/type_traits/alignment_of.hpp
==============================================================================
--- branches/release/boost/type_traits/alignment_of.hpp (original)
+++ branches/release/boost/type_traits/alignment_of.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/common_type.hpp
==============================================================================
--- branches/release/boost/type_traits/common_type.hpp (original)
+++ branches/release/boost/type_traits/common_type.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -11,20 +11,20 @@
#include <boost/config.hpp>
-#ifdef __SUNPRO_CC
+#if defined(__SUNPRO_CC) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
# define BOOST_COMMON_TYPE_DONT_USE_TYPEOF
#endif
-#ifdef __IBMCPP__
+#if defined(__IBMCPP__) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
# define BOOST_COMMON_TYPE_DONT_USE_TYPEOF
#endif
//----------------------------------------------------------------------------//
-#if defined(BOOST_NO_VARIADIC_TEMPLATES)
+#if defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY)
#define BOOST_COMMON_TYPE_ARITY 3
#endif
//----------------------------------------------------------------------------//
-#if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
+#if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) && !defined(BOOST_TYPEOF_SILENT)
#define BOOST_TYPEOF_SILENT
#include <boost/typeof/typeof.hpp> // boost wonders never cease!
#endif
@@ -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: branches/release/boost/type_traits/detail/bool_trait_def.hpp
==============================================================================
--- branches/release/boost/type_traits/detail/bool_trait_def.hpp (original)
+++ branches/release/boost/type_traits/detail/bool_trait_def.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/detail/common_type_imp.hpp
==============================================================================
--- branches/release/boost/type_traits/detail/common_type_imp.hpp (original)
+++ branches/release/boost/type_traits/detail/common_type_imp.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -72,22 +72,46 @@
{ typedef To const volatile type; };
/*******************************************************************************
- * struct is_signable_integral<T>
+ * struct is_integral_or_enum<T>
*
* This metafunction determines if T is an integral type which can be made
* signed or unsigned.
******************************************************************************/
template< class T >
-struct is_signable_integral
- : mpl::or_< is_integral<T>, is_enum<T> >
+struct is_integral_or_enum
+ : public mpl::or_< is_integral<T>, is_enum<T> >
{ };
template<>
-struct is_signable_integral< bool >
- : false_type
+struct is_integral_or_enum< bool >
+ : public false_type
{ };
/*******************************************************************************
+ * struct make_unsigned_soft<T>
+ * struct make_signed_soft<T>
+ *
+ * These metafunction are identical to make_unsigned and make_signed,
+ * respetively, except for special-casing bool.
+ ******************************************************************************/
+
+template< class T >
+struct make_unsigned_soft
+ : public make_unsigned<T>
+{ };
+template<>
+struct make_unsigned_soft< bool >
+{ typedef bool type; };
+
+template< class T >
+struct make_signed_soft
+ : public make_signed<T>
+{ };
+template<>
+struct make_signed_soft< bool >
+{ typedef bool type; };
+
+/*******************************************************************************
* struct sizeof_t<N>
* typedef ... yes_type
* typedef ... no_type
@@ -127,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
>
{
@@ -144,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
@@ -163,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 >
@@ -185,12 +209,21 @@
* { V*, W*, V'*, W'* }
* where V' is V with whatever cv-qualifiers are on W, and W' is W
* with whatever cv-qualifiers are on V
- * else T' and U' are both "signable integral types" (integral and enum
- * types excepting bool), then:
+ * else if T' and U' are both integral or enum types, then:
* define the set of NominalCandidates to be
- * { unsigned(T'), unsigned(U'), signed(T'), signed(U') }
- * where unsigned(X) is make_unsigned<X>::type and signed(X) is
- * make_signed<X>::type
+ * {
+ * unsigned_soft(T'),
+ * unsigned_soft(U'),
+ * signed_soft(T'),
+ * signed_soft(U'),
+ * T',
+ * U',
+ * unsigned int,
+ * int
+ * }
+ * where unsigned_soft(X) is make_unsigned_soft<X>::type and
+ * signed_soft(X) is make_signed_soft<X>::type (these are all
+ * generally necessary to cover the various integral promotion cases)
* else
* define the set of NominalCandidates to be
* { T', U' }
@@ -231,22 +264,20 @@
class T, class U,
class V = typename remove_cv< typename remove_reference<T>::type >::type,
class W = typename remove_cv< typename remove_reference<U>::type >::type,
- bool = is_signable_integral<V>::value && is_signable_integral<W>::value
+ bool = is_integral_or_enum<V>::value && is_integral_or_enum<W>::value
>
-struct nominal_candidates;
-
-template< class T, class U, class V, class W >
-struct nominal_candidates< T, U, V, W, false >
+struct nominal_candidates
{ typedef mpl::vector2<V,W> type; };
template< class T, class U, class V, class W >
struct nominal_candidates< T, U, V, W, true >
{
- typedef mpl::vector4<
- typename make_unsigned<V>::type,
- typename make_unsigned<W>::type,
- typename make_signed<V>::type,
- typename make_signed<W>::type
+ typedef boost::mpl::vector8<
+ typename make_unsigned_soft<V>::type,
+ typename make_unsigned_soft<W>::type,
+ typename make_signed_soft<V>::type,
+ typename make_signed_soft<W>::type,
+ V, W, unsigned int, int
> type;
};
@@ -262,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 >
@@ -285,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: branches/release/boost/type_traits/detail/cv_traits_impl.hpp
==============================================================================
--- branches/release/boost/type_traits/detail/cv_traits_impl.hpp (original)
+++ branches/release/boost/type_traits/detail/cv_traits_impl.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/detail/size_t_trait_def.hpp
==============================================================================
--- branches/release/boost/type_traits/detail/size_t_trait_def.hpp (original)
+++ branches/release/boost/type_traits/detail/size_t_trait_def.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/detail/type_trait_def.hpp
==============================================================================
--- branches/release/boost/type_traits/detail/type_trait_def.hpp (original)
+++ branches/release/boost/type_traits/detail/type_trait_def.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/has_nothrow_assign.hpp
==============================================================================
--- branches/release/boost/type_traits/has_nothrow_assign.hpp (original)
+++ branches/release/boost/type_traits/has_nothrow_assign.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -20,16 +20,22 @@
template <class T>
struct has_nothrow_assign_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_assign<T>::value,
- BOOST_HAS_NOTHROW_ASSIGN(T)
- >::value));
+#ifndef BOOST_HAS_NOTHROW_ASSIGN
+ BOOST_STATIC_CONSTANT(bool, value = ::boost::has_trivial_assign<T>::value);
+#else
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_ASSIGN(T));
+#endif
};
}
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::boost::detail::has_nothrow_assign_imp<T>::value)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void volatile,false)
+#endif
} // namespace boost
Modified: branches/release/boost/type_traits/has_nothrow_constructor.hpp
==============================================================================
--- branches/release/boost/type_traits/has_nothrow_constructor.hpp (original)
+++ branches/release/boost/type_traits/has_nothrow_constructor.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -20,11 +20,11 @@
template <class T>
struct has_nothrow_constructor_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_constructor<T>::value,
- BOOST_HAS_NOTHROW_CONSTRUCTOR(T)
- >::value));
+#ifdef BOOST_HAS_NOTHROW_CONSTRUCTOR
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_CONSTRUCTOR(T));
+#else
+ BOOST_STATIC_CONSTANT(bool, value = ::boost::has_trivial_constructor<T>::value);
+#endif
};
}
@@ -32,6 +32,20 @@
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_default_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void volatile,false)
+#endif
+
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void volatile,false)
+#endif
+
} // namespace boost
#include <boost/type_traits/detail/bool_trait_undef.hpp>
Modified: branches/release/boost/type_traits/has_nothrow_copy.hpp
==============================================================================
--- branches/release/boost/type_traits/has_nothrow_copy.hpp (original)
+++ branches/release/boost/type_traits/has_nothrow_copy.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -20,11 +20,11 @@
template <class T>
struct has_nothrow_copy_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_copy<T>::value,
- BOOST_HAS_NOTHROW_COPY(T)
- >::value));
+#ifdef BOOST_HAS_NOTHROW_COPY
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_COPY(T));
+#else
+ BOOST_STATIC_CONSTANT(bool, value = ::boost::has_trivial_copy<T>::value);
+#endif
};
}
@@ -32,6 +32,20 @@
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::boost::detail::has_nothrow_copy_imp<T>::value)
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy_constructor,T,::boost::detail::has_nothrow_copy_imp<T>::value)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void volatile,false)
+#endif
+
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void volatile,false)
+#endif
+
} // namespace boost
#include <boost/type_traits/detail/bool_trait_undef.hpp>
Modified: branches/release/boost/type_traits/has_trivial_assign.hpp
==============================================================================
--- branches/release/boost/type_traits/has_trivial_assign.hpp (original)
+++ branches/release/boost/type_traits/has_trivial_assign.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -28,20 +28,27 @@
template <typename T>
struct has_trivial_assign_impl
{
+#ifdef BOOST_HAS_TRIVIAL_ASSIGN
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_ASSIGN(T));
+#else
BOOST_STATIC_CONSTANT(bool, value =
(::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_ASSIGN(T)
- >::value,
- ::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
+ ::boost::is_pod<T>::value,
+ ::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
>::value));
+#endif
};
} // namespace detail
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_assign,T,::boost::detail::has_trivial_assign_impl<T>::value)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void volatile,false)
+#endif
} // namespace boost
Modified: branches/release/boost/type_traits/has_trivial_constructor.hpp
==============================================================================
--- branches/release/boost/type_traits/has_trivial_constructor.hpp (original)
+++ branches/release/boost/type_traits/has_trivial_constructor.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -24,11 +24,19 @@
template <typename T>
struct has_trivial_ctor_impl
{
+#ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR
BOOST_STATIC_CONSTANT(bool, value =
(::boost::type_traits::ice_or<
::boost::is_pod<T>::value,
BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
>::value));
+#else
+ BOOST_STATIC_CONSTANT(bool, value =
+ (::boost::type_traits::ice_or<
+ ::boost::is_pod<T>::value,
+ false
+ >::value));
+#endif
};
} // namespace detail
Modified: branches/release/boost/type_traits/has_trivial_copy.hpp
==============================================================================
--- branches/release/boost/type_traits/has_trivial_copy.hpp (original)
+++ branches/release/boost/type_traits/has_trivial_copy.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -27,14 +27,15 @@
template <typename T>
struct has_trivial_copy_impl
{
+#ifdef BOOST_HAS_TRIVIAL_COPY
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_COPY(T));
+#else
BOOST_STATIC_CONSTANT(bool, value =
(::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_COPY(T)
- >::value,
- ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
+ ::boost::is_pod<T>::value,
+ ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
>::value));
+#endif
};
} // namespace detail
@@ -42,6 +43,20 @@
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy,T,::boost::detail::has_trivial_copy_impl<T>::value)
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy_constructor,T,::boost::detail::has_trivial_copy_impl<T>::value)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void volatile,false)
+#endif
+
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void volatile,false)
+#endif
+
} // namespace boost
#include <boost/type_traits/detail/bool_trait_undef.hpp>
Modified: branches/release/boost/type_traits/has_trivial_destructor.hpp
==============================================================================
--- branches/release/boost/type_traits/has_trivial_destructor.hpp (original)
+++ branches/release/boost/type_traits/has_trivial_destructor.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -24,17 +24,24 @@
template <typename T>
struct has_trivial_dtor_impl
{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_DESTRUCTOR(T)
- >::value));
+#ifdef BOOST_HAS_TRIVIAL_DESTRUCTOR
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_DESTRUCTOR(T));
+#else
+ BOOST_STATIC_CONSTANT(bool, value = ::boost::is_pod<T>::value);
+#endif
};
} // namespace detail
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::boost::detail::has_trivial_dtor_impl<T>::value)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void,false)
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void volatile,false)
+#endif
+
} // namespace boost
#include <boost/type_traits/detail/bool_trait_undef.hpp>
Modified: branches/release/boost/type_traits/has_virtual_destructor.hpp
==============================================================================
--- branches/release/boost/type_traits/has_virtual_destructor.hpp (original)
+++ branches/release/boost/type_traits/has_virtual_destructor.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -16,7 +16,11 @@
namespace boost {
+#ifdef BOOST_HAS_VIRTUAL_DESTRUCTOR
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,BOOST_HAS_VIRTUAL_DESTRUCTOR(T))
+#else
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,false)
+#endif
} // namespace boost
Modified: branches/release/boost/type_traits/integral_promotion.hpp
==============================================================================
--- branches/release/boost/type_traits/integral_promotion.hpp (original)
+++ branches/release/boost/type_traits/integral_promotion.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/intrinsics.hpp
==============================================================================
--- branches/release/boost/type_traits/intrinsics.hpp (original)
+++ branches/release/boost/type_traits/intrinsics.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -33,8 +33,6 @@
// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor
//
// The following can also be defined: when detected our implementation is greatly simplified.
-// Note that unlike the macros above these do not have default definitions, so we can use
-// #ifdef MACRONAME to detect when these are available.
//
// BOOST_IS_ABSTRACT(T) true if T is an abstract type
// BOOST_IS_BASE_OF(T,U) true if T is a base class of U
@@ -89,19 +87,18 @@
# define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T))
# define BOOST_IS_EMPTY(T) __is_empty(T)
# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-# define BOOST_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
-# 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)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T)
+# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)|| ( ::boost::is_pod<T>::value && !::boost::is_volatile<T>::value))
+# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ( ::boost::is_pod<T>::value && ! ::boost::is_const<T>::value && !::boost::is_volatile<T>::value))
+# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::boost::is_pod<T>::value)
+# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::boost::has_trivial_constructor<T>::value)
+# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) || ::boost::has_trivial_copy<T>::value)
+# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::boost::has_trivial_assign<T>::value)
# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
# define BOOST_IS_ABSTRACT(T) __is_abstract(T)
# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
# define BOOST_IS_CLASS(T) __is_class(T)
-// This one doesn't quite always do the right thing:
-// # define BOOST_IS_CONVERTIBLE(T,U) __is_convertible_to(T,U)
+# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || is_same<T,U>::value) && !__is_abstract(U))
# define BOOST_IS_ENUM(T) __is_enum(T)
// This one doesn't quite always do the right thing:
// # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
@@ -132,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)
-# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
-# 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)
@@ -168,8 +171,8 @@
# 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)
-# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
+# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && && !is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !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)
@@ -195,13 +198,13 @@
# 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_default_constructor(T) || is_void<T>::value)
-# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value || is_void<T>::value)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value || is_void<T>::value)
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || is_void<T>::value)
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T) || is_void<T>::value)
-# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value || is_void<T>::value)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value || is_void<T>::value)
+# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T))
+# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
+# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T))
+# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T))
+# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(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_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
# define BOOST_IS_ABSTRACT(T) __is_abstract(T)
@@ -215,50 +218,6 @@
# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
#endif
-#ifndef BOOST_IS_UNION
-# define BOOST_IS_UNION(T) false
-#endif
-
-#ifndef BOOST_IS_POD
-# define BOOST_IS_POD(T) false
-#endif
-
-#ifndef BOOST_IS_EMPTY
-# define BOOST_IS_EMPTY(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_CONSTRUCTOR
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_COPY
-# define BOOST_HAS_TRIVIAL_COPY(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_ASSIGN
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_DESTRUCTOR
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_CONSTRUCTOR
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_COPY
-# define BOOST_HAS_NOTHROW_COPY(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_ASSIGN
-# define BOOST_HAS_NOTHROW_ASSIGN(T) false
-#endif
-
-#ifndef BOOST_HAS_VIRTUAL_DESTRUCTOR
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) false
-#endif
-
#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED
Modified: branches/release/boost/type_traits/is_const.hpp
==============================================================================
--- branches/release/boost/type_traits/is_const.hpp (original)
+++ branches/release/boost/type_traits/is_const.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_convertible.hpp
==============================================================================
--- branches/release/boost/type_traits/is_convertible.hpp (original)
+++ branches/release/boost/type_traits/is_convertible.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -24,6 +24,7 @@
#ifndef BOOST_NO_IS_ABSTRACT
#include <boost/type_traits/is_abstract.hpp>
#endif
+#include <boost/type_traits/add_rvalue_reference.hpp>
#if defined(__MWERKS__)
#include <boost/type_traits/is_function.hpp>
@@ -68,7 +69,7 @@
{
static no_type BOOST_TT_DECL _m_check(...);
static yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
};
};
@@ -84,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>
{
};
@@ -106,7 +107,7 @@
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T);
};
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
static bool const value = sizeof( checker<To>::_m_check(_m_from) )
== sizeof(::boost::type_traits::yes_type);
#pragma option pop
@@ -131,7 +132,7 @@
template <typename From, typename To>
struct is_convertible_basic_impl
{
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
static bool const value = sizeof( boost::detail::checker<To>::_m_check(_m_from, 0) )
== sizeof(::boost::type_traits::yes_type);
};
@@ -161,7 +162,7 @@
{
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
BOOST_STATIC_CONSTANT(bool, value =
sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
@@ -185,7 +186,7 @@
template <class T>
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T);
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int);
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
// Static constants sometime cause the conversion of _m_from to To to be
// called. This doesn't happen with an enum.
@@ -215,7 +216,7 @@
{
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
BOOST_STATIC_CONSTANT(bool, value =
sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
@@ -227,7 +228,7 @@
{
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
BOOST_STATIC_CONSTANT(bool, value =
sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
);
@@ -252,7 +253,7 @@
{
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
+ static typename add_rvalue_reference<From>::type _m_from;
#ifdef BOOST_MSVC
#pragma warning(push)
#pragma warning(disable:4244)
@@ -402,14 +403,14 @@
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,true)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,false)
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false)
BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false)
BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,true)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,false)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,false)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,false)
#endif
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Modified: branches/release/boost/type_traits/is_empty.hpp
==============================================================================
--- branches/release/boost/type_traits/is_empty.hpp (original)
+++ branches/release/boost/type_traits/is_empty.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -31,6 +31,12 @@
// should be always the last #include directive
#include <boost/type_traits/detail/bool_trait_def.hpp>
+#ifndef BOOST_INTERNAL_IS_EMPTY
+#define BOOST_INTERNAL_IS_EMPTY(T) false
+#else
+#define BOOST_INTERNAL_IS_EMPTY(T) BOOST_IS_EMPTY(T)
+#endif
+
namespace boost {
namespace detail {
@@ -83,7 +89,7 @@
bool, value = (
::boost::type_traits::ice_or<
::boost::detail::empty_helper<cvt,::boost::is_class<T>::value>::value
- , BOOST_IS_EMPTY(cvt)
+ , BOOST_INTERNAL_IS_EMPTY(cvt)
>::value
));
};
@@ -118,7 +124,7 @@
, ::boost::is_class<T>::value
, ::boost::is_convertible< r_type,int>::value
>::value
- , BOOST_IS_EMPTY(cvt)
+ , BOOST_INTERNAL_IS_EMPTY(cvt)
>::value));
};
@@ -187,14 +193,14 @@
typedef typename result::type eh_type;
BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<eh_type::value, BOOST_IS_EMPTY(T)>::value));
+ (::boost::type_traits::ice_or<eh_type::value, BOOST_INTERNAL_IS_EMPTY(T)>::value));
};
#else
template <typename T> struct is_empty_impl
{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_EMPTY(T));
+ BOOST_STATIC_CONSTANT(bool, value = BOOST_INTERNAL_IS_EMPTY(T));
};
#endif // BOOST_MSVC6_MEMBER_TEMPLATES
@@ -217,5 +223,7 @@
#include <boost/type_traits/detail/bool_trait_undef.hpp>
+#undef BOOST_INTERNAL_IS_EMPTY
+
#endif // BOOST_TT_IS_EMPTY_HPP_INCLUDED
Modified: branches/release/boost/type_traits/is_enum.hpp
==============================================================================
--- branches/release/boost/type_traits/is_enum.hpp (original)
+++ branches/release/boost/type_traits/is_enum.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_function.hpp
==============================================================================
--- branches/release/boost/type_traits/is_function.hpp (original)
+++ branches/release/boost/type_traits/is_function.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_fundamental.hpp
==============================================================================
--- branches/release/boost/type_traits/is_fundamental.hpp (original)
+++ branches/release/boost/type_traits/is_fundamental.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_member_function_pointer.hpp
==============================================================================
--- branches/release/boost/type_traits/is_member_function_pointer.hpp (original)
+++ branches/release/boost/type_traits/is_member_function_pointer.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_member_pointer.hpp
==============================================================================
--- branches/release/boost/type_traits/is_member_pointer.hpp (original)
+++ branches/release/boost/type_traits/is_member_pointer.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_pod.hpp
==============================================================================
--- branches/release/boost/type_traits/is_pod.hpp (original)
+++ branches/release/boost/type_traits/is_pod.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -20,6 +20,12 @@
// should be the last #include
#include <boost/type_traits/detail/bool_trait_def.hpp>
+#ifndef BOOST_IS_POD
+#define BOOST_INTERNAL_IS_POD(T) false
+#else
+#define BOOST_INTERNAL_IS_POD(T) BOOST_IS_POD(T)
+#endif
+
namespace boost {
// forward declaration, needed by 'is_pod_array_helper' template below
@@ -36,14 +42,14 @@
(::boost::type_traits::ice_or<
::boost::is_scalar<T>::value,
::boost::is_void<T>::value,
- BOOST_IS_POD(T)
+ BOOST_INTERNAL_IS_POD(T)
>::value));
};
#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
@@ -60,7 +66,7 @@
(::boost::type_traits::ice_or<
::boost::is_scalar<T>::value,
::boost::is_void<T>::value,
- BOOST_IS_POD(T)
+ BOOST_INTERNAL_IS_POD(T)
>::value));
};
};
@@ -132,4 +138,6 @@
#include <boost/type_traits/detail/bool_trait_undef.hpp>
+#undef BOOST_INTERNAL_IS_POD
+
#endif // BOOST_TT_IS_POD_HPP_INCLUDED
Modified: branches/release/boost/type_traits/is_pointer.hpp
==============================================================================
--- branches/release/boost/type_traits/is_pointer.hpp (original)
+++ branches/release/boost/type_traits/is_pointer.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_union.hpp
==============================================================================
--- branches/release/boost/type_traits/is_union.hpp (original)
+++ branches/release/boost/type_traits/is_union.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -25,7 +25,11 @@
template <typename T> struct is_union_impl
{
typedef typename remove_cv<T>::type cvt;
+#ifdef BOOST_IS_UNION
BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt));
+#else
+ BOOST_STATIC_CONSTANT(bool, value = false);
+#endif
};
#else
//
@@ -35,7 +39,11 @@
//
template <typename T> struct is_union_impl
{
+#ifdef BOOST_IS_UNION
BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T));
+#else
+ BOOST_STATIC_CONSTANT(bool, value = false);
+#endif
};
#endif
} // namespace detail
Modified: branches/release/boost/type_traits/is_virtual_base_of.hpp
==============================================================================
--- branches/release/boost/type_traits/is_virtual_base_of.hpp (original)
+++ branches/release/boost/type_traits/is_virtual_base_of.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/is_volatile.hpp
==============================================================================
--- branches/release/boost/type_traits/is_volatile.hpp (original)
+++ branches/release/boost/type_traits/is_volatile.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/msvc/typeof.hpp
==============================================================================
--- branches/release/boost/type_traits/msvc/typeof.hpp (original)
+++ branches/release/boost/type_traits/msvc/typeof.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/promote.hpp
==============================================================================
--- branches/release/boost/type_traits/promote.hpp (original)
+++ branches/release/boost/type_traits/promote.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/boost/type_traits/remove_pointer.hpp
==============================================================================
--- branches/release/boost/type_traits/remove_pointer.hpp (original)
+++ branches/release/boost/type_traits/remove_pointer.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -9,12 +9,17 @@
#ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-#include <boost/type_traits/broken_compiler_spec.hpp>
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
+#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include <boost/type_traits/broken_compiler_spec.hpp>
+#endif
#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
#include <boost/type_traits/msvc/remove_pointer.hpp>
+#elif defined(BOOST_MSVC)
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/is_pointer.hpp>
#endif
// should be the last #include
@@ -22,7 +27,51 @@
namespace boost {
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#ifdef BOOST_MSVC
+
+namespace detail{
+
+ //
+ // We need all this crazy indirection because a type such as:
+ //
+ // T (*const)(U)
+ //
+ // Does not bind to a <T*> or <T*const> partial specialization with VC10 and earlier
+ //
+ template <class T>
+ struct remove_pointer_imp
+ {
+ typedef T type;
+ };
+
+ template <class T>
+ struct remove_pointer_imp<T*>
+ {
+ typedef T type;
+ };
+
+ template <class T, bool b>
+ struct remove_pointer_imp3
+ {
+ typedef typename remove_pointer_imp<typename boost::remove_cv<T>::type>::type type;
+ };
+
+ template <class T>
+ struct remove_pointer_imp3<T, false>
+ {
+ typedef T type;
+ };
+
+ template <class T>
+ struct remove_pointer_imp2
+ {
+ typedef typename remove_pointer_imp3<T, ::boost::is_pointer<T>::value>::type type;
+ };
+}
+
+BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename boost::detail::remove_pointer_imp2<T>::type)
+
+#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T)
BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T)
Modified: branches/release/boost/type_traits/type_with_alignment.hpp
==============================================================================
--- branches/release/boost/type_traits/type_with_alignment.hpp (original)
+++ branches/release/boost/type_traits/type_with_alignment.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 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: branches/release/libs/type_traits/doc/Jamfile.v2
==============================================================================
--- branches/release/libs/type_traits/doc/Jamfile.v2 (original)
+++ branches/release/libs/type_traits/doc/Jamfile.v2 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -78,8 +78,9 @@
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/type_traits/doc/html
;
-#install html : ../../../doc/html/boostbook.css ;
-#install ../ : ../../../boost.png ;
+install pdf-install : standalone : <install-type>PDF <location>. <name>type_traits.pdf ;
+
+
Modified: branches/release/libs/type_traits/doc/common_type.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/common_type.qbk (original)
+++ branches/release/libs/type_traits/doc/common_type.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -14,7 +14,7 @@
[def __declval [@../../../utility/doc/html/declval.html declval]]
-`#include <boost/type_traits/common_type.hpp>`
+__header ` #include <boost/type_traits/common_type.hpp>` or ` #include <boost/type_traits.hpp>`
namespace boost {
template <class ...T> struct __common_type;
Modified: branches/release/libs/type_traits/doc/conditional.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/conditional.qbk (original)
+++ branches/release/libs/type_traits/doc/conditional.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -10,7 +10,7 @@
[/===================================================================]
-`#include <boost/type_traits/conditional.hpp>`
+__header ` #include <boost/type_traits/conditional.hpp>` or ` #include <boost/type_traits.hpp>`
namespace boost {
template <bool B, class T, class U> struct __conditional;
Modified: branches/release/libs/type_traits/doc/has_nothrow_constructor.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_nothrow_constructor.qbk (original)
+++ branches/release/libs/type_traits/doc/has_nothrow_constructor.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -22,11 +22,13 @@
__compat If the compiler does not support partial-specialization of class
templates, then this template can not be used with function types.
-Without some (as yet unspecified) help from the compiler,
+Without some (unspecified) help from the compiler,
`has_nothrow_constructor` will never report that a class or struct has a
non-throwing default-constructor; this is always safe, if possibly sub-optimal.
-Currently (May 2005) only Visual C++ 8 has the necessary compiler __intrinsics to ensure that this
-trait "just works".
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_NOTHROW_CONSTRUCTOR` is defined.
__header ` #include <boost/type_traits/has_nothrow_constructor.hpp>` or ` #include <boost/type_traits.hpp>`
Modified: branches/release/libs/type_traits/doc/has_nothrow_copy.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_nothrow_copy.qbk (original)
+++ branches/release/libs/type_traits/doc/has_nothrow_copy.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -25,8 +25,10 @@
Without some (as yet unspecified) help from the compiler,
`has_nothrow_copy` will never report that a class or struct has a
non-throwing copy-constructor; this is always safe, if possibly sub-optimal.
-Currently (May 2005) only Visual C++ 8 has the necessary compiler __intrinsics to ensure that this
-trait "just works".
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_NOTHROW_COPY` is defined.
__header ` #include <boost/type_traits/has_nothrow_copy.hpp>` or ` #include <boost/type_traits.hpp>`
Modified: branches/release/libs/type_traits/doc/has_trivial_assign.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_trivial_assign.qbk (original)
+++ branches/release/libs/type_traits/doc/has_trivial_assign.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -21,9 +21,12 @@
Without some (as yet unspecified) help from the compiler,
has_trivial_assign will never report that a user-defined class or struct has a
-trivial constructor; this is always safe, if possibly sub-optimal. Currently
-(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler __intrinsics to detect
-user-defined classes with trivial constructors.
+trivial constructor; this is always safe, if possibly sub-optimal.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_TRIVIAL_ASSIGN` is defined.
+
__std_ref 12.8p11.
Modified: branches/release/libs/type_traits/doc/has_trivial_constructor.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_trivial_constructor.qbk (original)
+++ branches/release/libs/type_traits/doc/has_trivial_constructor.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -29,9 +29,12 @@
Without some (as yet unspecified) help from the compiler,
has_trivial_constructor will never report that a user-defined class or struct has a
-trivial constructor; this is always safe, if possibly sub-optimal. Currently
-(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler __intrinsics to detect
-user-defined classes with trivial constructors.
+trivial constructor; this is always safe, if possibly sub-optimal.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_TRIVIAL_CONSTRUCTOR` is defined.
+
__std_ref 12.1p6.
Modified: branches/release/libs/type_traits/doc/has_trivial_copy.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_trivial_copy.qbk (original)
+++ branches/release/libs/type_traits/doc/has_trivial_copy.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -27,9 +27,12 @@
Without some (as yet unspecified) help from the compiler,
has_trivial_copy will never report that a user-defined class or struct has a
-trivial constructor; this is always safe, if possibly sub-optimal. Currently
-(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler __intrinsics to detect
-user-defined classes with trivial constructors.
+trivial constructor; this is always safe, if possibly sub-optimal.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_TRIVIAL_COPY` is defined.
+
__std_ref 12.8p6.
Modified: branches/release/libs/type_traits/doc/has_trivial_destructor.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_trivial_destructor.qbk (original)
+++ branches/release/libs/type_traits/doc/has_trivial_destructor.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -23,9 +23,12 @@
Without some (as yet unspecified) help from the compiler,
has_trivial_destructor will never report that a user-defined class or struct has a
-trivial destructor; this is always safe, if possibly sub-optimal. Currently
-(May 2005) only MWCW 9 and Visual C++ 8 have the necessary compiler __intrinsics to detect
-user-defined classes with trivial constructors.
+trivial destructor; this is always safe, if possibly sub-optimal.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_TRIVIAL_DESTRUCTOR` is defined.
+
__std_ref 12.4p3.
Modified: branches/release/libs/type_traits/doc/has_virtual_destructor.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/has_virtual_destructor.qbk (original)
+++ branches/release/libs/type_traits/doc/has_virtual_destructor.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -17,8 +17,12 @@
way to portably implement this trait. The default version provided
always inherits from __false_type, and has to be explicitly specialized for
types with virtual destructors unless the compiler used has compiler __intrinsics
-that enable the trait to do the right thing: currently (May 2005) only Visual C++
-8 and GCC-4.3 have the necessary __intrinsics.
+that enable the trait to do the right thing:
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_HAS_VIRTUAL_DESTRUCTOR` is defined.
+
__std_ref 12.4.
Modified: branches/release/libs/type_traits/doc/history.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/history.qbk (original)
+++ branches/release/libs/type_traits/doc/history.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -7,6 +7,13 @@
[section:history History]
+[h4 Boost 1.47.0]
+
+* [* Breaking change]: changed __is_convertible to C++0x behaviour when possible.
+* Fixed issues [@https://svn.boost.org/trac/boost/ticket/5271 #5271],
+[@https://svn.boost.org/trac/boost/ticket/4530 #4530].
+
+
[h4 Boost 1.45.0]
* Added new traits __add_rvalue_reference, __add_lvalue_reference and __common_type.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/background.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -57,7 +56,7 @@
method available to them.
</p>
<a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id1005124"></a>
+<a name="id1007922"></a>
<a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
</h5>
<p>
@@ -85,7 +84,7 @@
given.
</p>
<a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id1005188"></a>
+<a name="id1007985"></a>
<a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
</h5>
<p>
@@ -175,7 +174,7 @@
in the default template.
</p>
<a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id1014129"></a>
+<a name="id1015349"></a>
<a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
</h5>
<p>
@@ -248,7 +247,7 @@
otherwise it will call the "slow but safe version".
</p>
<a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id1014495"></a>
+<a name="id1015715"></a>
<a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
</h5>
<p>
@@ -380,7 +379,7 @@
</table></div>
</div>
<br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id1014691"></a>
+<a name="id1015912"></a>
<a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
</h5>
<p>
@@ -598,7 +597,7 @@
easier to maintain and easier to understand.
</p>
<a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id1015535"></a>
+<a name="id1016755"></a>
<a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
</h5>
<p>
@@ -611,7 +610,7 @@
can be optimal as well as generic.
</p>
<a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id1015552"></a>
+<a name="id1016772"></a>
<a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
</h5>
<p>
@@ -619,7 +618,7 @@
comments when preparing this article.
</p>
<a name="boost_typetraits.background._anchor_id__background_references____references"></a><h5>
-<a name="id1015569"></a>
+<a name="id1016789"></a>
<a class="link" href="background.html#boost_typetraits.background._anchor_id__background_references____references"><a name="background.references"></a> References</a>
</h5>
<div class="orderedlist"><ol type="1">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/alignment.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/alignment.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/alignment.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/function.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/function.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/function.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -104,7 +103,7 @@
<span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
</pre>
<a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id1020176"></a>
+<a name="id1020853"></a>
<a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
Compiler Workarounds:</a>
</h5>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/credits.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/credits.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/credits.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples/copy.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples/copy.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples/copy.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples/fill.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples/fill.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples/fill.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples/improved_min.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples/improved_min.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples/improved_min.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples/iter.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples/iter.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples/iter.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/history.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/history.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/history.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -27,8 +26,22 @@
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_typetraits.history"></a><a class="link" href="history.html" title="History">History</a>
</h2></div></div></div>
+<a name="boost_typetraits.history.boost_1_47_0"></a><h5>
+<a name="id1078250"></a>
+ <a class="link" href="history.html#boost_typetraits.history.boost_1_47_0">Boost 1.47.0</a>
+ </h5>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ <span class="bold"><strong>Breaking change</strong></span>: changed <a class="link" href="reference/is_convertible.html" title="is_convertible">is_convertible</a>
+ to C++0x behaviour when possible.
+ </li>
+<li>
+ Fixed issues #5271,
+ #4530.
+ </li>
+</ul></div>
<a name="boost_typetraits.history.boost_1_45_0"></a><h5>
-<a name="id1077080"></a>
+<a name="id1078300"></a>
<a class="link" href="history.html#boost_typetraits.history.boost_1_45_0">Boost 1.45.0</a>
</h5>
<div class="itemizedlist"><ul type="disc">
@@ -44,7 +57,7 @@
</li>
</ul></div>
<a name="boost_typetraits.history.boost_1_44_0"></a><h5>
-<a name="id1077140"></a>
+<a name="id1078360"></a>
<a class="link" href="history.html#boost_typetraits.history.boost_1_44_0">Boost 1.44.0</a>
</h5>
<div class="itemizedlist"><ul type="disc">
@@ -60,7 +73,7 @@
</li>
</ul></div>
<a name="boost_typetraits.history.boost_1_42_0"></a><h5>
-<a name="id1077195"></a>
+<a name="id1078416"></a>
<a class="link" href="history.html#boost_typetraits.history.boost_1_42_0">Boost 1.42.0</a>
</h5>
<div class="itemizedlist"><ul type="disc"><li>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/intrinsics.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/intrinsics.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/intro.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/intro.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/intro.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/mpl.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/mpl.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/mpl.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -28,7 +27,9 @@
<a name="boost_typetraits.reference.common_type"></a><a class="link" href="common_type.html" title="common_type">common_type</a>
</h3></div></div></div>
<p>
- <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">common_type</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ <span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
+ <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">common_type</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="special">...</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">;</span>
@@ -74,7 +75,7 @@
template arguments is 3.
</p>
<a name="boost_typetraits.reference.common_type.configuration_macros"></a><h5>
-<a name="id1034093"></a>
+<a name="id1036155"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.configuration_macros">Configuration
macros</a>
</h5>
@@ -104,7 +105,7 @@
Otherwise when BOOST_COMMON_TYPE_DONT_USE_TYPEOF is not defined it uses Boost.TypeOf.
</p>
<a name="boost_typetraits.reference.common_type.tutorial"></a><h5>
-<a name="id1034150"></a>
+<a name="id1036212"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.tutorial">Tutorial</a>
</h5>
<p>
@@ -139,7 +140,7 @@
This is a very useful and broadly applicable utility.
</p>
<a name="boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_"></a><h5>
-<a name="id1034451"></a>
+<a name="id1036513"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_">How
to get the common type of types with explicit conversions?</a>
</h5>
@@ -161,7 +162,7 @@
<span class="special">};</span>
</pre>
<a name="boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_"></a><h5>
-<a name="id1034751"></a>
+<a name="id1036813"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_">How
important is the order of the common_type<> template arguments?</a>
</h5>
@@ -241,7 +242,7 @@
<span class="identifier">A</span><span class="special">></span></code>.
</p>
<a name="boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_"></a><h5>
-<a name="id1035618"></a>
+<a name="id1037680"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_">Can
the common_type of two types be a third type?</a>
</h5>
@@ -268,7 +269,7 @@
<span class="identifier">B</span><span class="special">></span></code>.
</p>
<a name="boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_"></a><h5>
-<a name="id1035897"></a>
+<a name="id1037959"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_">How
common_type behaves with pointers?</a>
</h5>
@@ -304,7 +305,7 @@
Of course the user can always make this specialization.
</p>
<a name="boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_"></a><h5>
-<a name="id1036182"></a>
+<a name="id1038821"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_">Can
you explain the pros/cons of common_type against Boost.Typeof?</a>
</h5>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -28,7 +27,9 @@
<a name="boost_typetraits.reference.conditional"></a><a class="link" href="conditional.html" title="conditional">conditional</a>
</h3></div></div></div>
<p>
- <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">conditional</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ <span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
+ <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">conditional</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
+ or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
</p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">bool</span> <span class="identifier">B</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="conditional.html" title="conditional">conditional</a><span class="special">;</span>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/decay.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/decay.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/extent.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/extent.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/extent.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -49,11 +48,15 @@
can not be used with function types.
</p>
<p>
- Without some (as yet unspecified) help from the compiler, <code class="computeroutput"><span class="identifier">has_nothrow_constructor</span></code>
+ Without some (unspecified) help from the compiler, <code class="computeroutput"><span class="identifier">has_nothrow_constructor</span></code>
will never report that a class or struct has a non-throwing default-constructor;
- this is always safe, if possibly sub-optimal. Currently (May 2005) only Visual
- C++ 8 has the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to ensure that this trait "just works".
+ this is always safe, if possibly sub-optimal. Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_NOTHROW_CONSTRUCTOR</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -51,9 +50,13 @@
<p>
Without some (as yet unspecified) help from the compiler, <code class="computeroutput"><span class="identifier">has_nothrow_copy</span></code>
will never report that a class or struct has a non-throwing copy-constructor;
- this is always safe, if possibly sub-optimal. Currently (May 2005) only Visual
- C++ 8 has the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to ensure that this trait "just works".
+ this is always safe, if possibly sub-optimal. Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_NOTHROW_COPY</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -48,9 +47,13 @@
<p>
Without some (as yet unspecified) help from the compiler, has_trivial_assign
will never report that a user-defined class or struct has a trivial constructor;
- this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW
- 9 and Visual C++ 8 have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to detect user-defined classes with trivial constructors.
+ this is always safe, if possibly sub-optimal. Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_TRIVIAL_ASSIGN</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 12.8p11.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -56,9 +55,13 @@
<p>
Without some (as yet unspecified) help from the compiler, has_trivial_constructor
will never report that a user-defined class or struct has a trivial constructor;
- this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW
- 9 and Visual C++ 8 have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to detect user-defined classes with trivial constructors.
+ this is always safe, if possibly sub-optimal. Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_TRIVIAL_CONSTRUCTOR</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 12.1p6.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -54,9 +53,13 @@
<p>
Without some (as yet unspecified) help from the compiler, has_trivial_copy
will never report that a user-defined class or struct has a trivial constructor;
- this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW
- 9 and Visual C++ 8 have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to detect user-defined classes with trivial constructors.
+ this is always safe, if possibly sub-optimal. Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_TRIVIAL_COPY</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 12.8p6.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -50,9 +49,13 @@
<p>
Without some (as yet unspecified) help from the compiler, has_trivial_destructor
will never report that a user-defined class or struct has a trivial destructor;
- this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW
- 9 and Visual C++ 8 have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to detect user-defined classes with trivial constructors.
+ this is always safe, if possibly sub-optimal. Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_TRIVIAL_DESTRUCTOR</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 12.4p3.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -42,8 +41,13 @@
trait. The default version provided always inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>,
and has to be explicitly specialized for types with virtual destructors unless
the compiler used has compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- that enable the trait to do the right thing: currently (May 2005) only Visual
- C++ 8 and GCC-4.3 have the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>.
+ that enable the trait to do the right thing: Currently (May 2011) compilers
+ more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear
+ have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_VIRTUAL_DESTRUCTOR</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 12.4.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -32,17 +31,16 @@
</pre>
<p>
<span class="bold"><strong>Inherits:</strong></span> If Base is base class of type
- Derived or if both types are the same then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ Derived or if both types are the same class type then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
</p>
<p>
This template will detect non-public base classes, and ambiguous base classes.
</p>
<p>
- Note that <code class="computeroutput"><span class="identifier">is_base_of</span><span class="special"><</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">X</span><span class="special">></span></code> will always inherit from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>.
- <span class="bold"><strong>This is the case even if <code class="computeroutput"><span class="identifier">X</span></code>
- is not a class type</strong></span>. This is a change in behaviour from Boost-1.33
- in order to track the Technical Report on C++ Library Extensions.
+ Note that <code class="computeroutput"><span class="identifier">is_base_of</span><span class="special"><</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">X</span><span class="special">></span></code> will inherit from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>
+ if X is a class type. This is a change in behaviour from Boost-1.39.0 in
+ order to track the emerging C++0x standard.
</p>
<p>
Types <code class="computeroutput"><span class="identifier">Base</span></code> and <code class="computeroutput"><span class="identifier">Derived</span></code> must not be incomplete types.
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -48,8 +47,12 @@
yet unspecified) help from the compiler, we cannot distinguish between union
and class types, as a result this type will erroneously inherit from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a> for
union types. See also <a class="link" href="is_union.html" title="is_union">is_union</a>.
- Currently (May 2005) only Visual C++ 8 has the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to correctly identify union types, and therefore make is_class function correctly.
+ Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills
+ 6.0, Intel-11.0, and Codegear have the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_IS_CLASS</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>Examples:</strong></span>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -31,7 +30,7 @@
<span class="keyword">struct</span> <span class="identifier">is_convertible</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
</pre>
<p>
- <span class="bold"><strong>Inherits:</strong></span> If an imaginary lvalue of type
+ <span class="bold"><strong>Inherits:</strong></span> If an imaginary rvalue of type
<code class="computeroutput"><span class="identifier">From</span></code> is convertible to type
<code class="computeroutput"><span class="identifier">To</span></code> then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
@@ -107,7 +106,7 @@
</p></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
<code class="computeroutput"><span class="identifier">is_convertible</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">>::</span><span class="identifier">value</span></code>
- is an integral constant expression that evaluates to <span class="emphasis"><em>false</em></span>.
+ is an integral constant expression that evaluates to <span class="emphasis"><em>true</em></span>.
</p></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
<code class="computeroutput"><span class="identifier">is_convertible</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">>::</span><span class="identifier">value_type</span></code>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -53,7 +52,8 @@
</li>
<li>
the compiler providing <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to detect empty classes.
+ to detect empty classes - this latter case can be tested for by checking
+ to see if the macro BOOST_IS_EMPTY is defined.
</li>
</ul></div>
<p>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -54,10 +53,15 @@
can not be used with function types.
</p>
<p>
- Without some (as yet unspecified) help from the compiler, is<span class="underline">pod
- will never report that a class or struct is a POD; this is always safe, if
- possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have
- the necessary compiler-</span>_intrinsics.
+ Without some (as yet unspecified) help from the compiler, is_pod will never
+ report that a class or struct is a POD; this is always safe, if possibly
+ sub-optimal. Currently (May 2011) compilers more recent than Visual C++ 8,
+ GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear have the necessary compiler
+ <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a> to ensure that
+ this trait "just works". You may also test to see if the necessary
+ <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a> are available
+ by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_IS_POD</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -31,7 +30,7 @@
<span class="keyword">struct</span> <span class="identifier">is_stateless</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
</pre>
<p>
- <span class="bold"><strong>Inherits:</strong></span> Ff T is a stateless type then
+ <span class="bold"><strong>Inherits:</strong></span> If T is a stateless type then
inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
otherwise from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
</p>
@@ -66,9 +65,10 @@
<p>
Without some (as yet unspecified) help from the compiler, is_stateless will
never report that a class or struct is stateless; this is always safe, if
- possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have
- the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to make this template work automatically.
+ possibly sub-optimal. Currently (May 2011) compilers more recent than Visual
+ C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear have the necessary
+ compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a> to
+ ensure that this trait "just works".
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -47,9 +46,13 @@
inherit from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
unless the user explicitly specializes the template for their user-defined
union types, or unless the compiler supplies some unspecified intrinsic that
- implements this functionality. Currently (May 2005) only Visual C++ 8 has
+ implements this functionality. Currently (May 2011) compilers more recent
+ than Visual C++ 8, GCC-4.3, Greenhills 6.0, Intel-11.0, and Codegear have
the necessary compiler <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
- to make this trait "just work" without user intervention.
+ to ensure that this trait "just works". You may also test to see
+ if the necessary <a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>
+ are available by checking to see if the macro <code class="computeroutput"><span class="identifier">BOOST_IS_UNION</span></code>
+ is defined.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -84,10 +83,16 @@
that evaluates to <span class="emphasis"><em>true</em></span>.
</p></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special"><</span><span class="identifier">Base</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">value</span></code> is an integral constant expression
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special"><</span><span class="identifier">SomeClassType</span><span class="special">,</span>
+ <span class="identifier">SomeClassType</span><span class="special">>::</span><span class="identifier">value</span></code> is an integral constant expression
that evaluates to <span class="emphasis"><em>true</em></span>.
</p></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special"><</span><span class="identifier">NotAClassType</span><span class="special">,</span>
+ <span class="identifier">NotAClassType</span><span class="special">>::</span><span class="identifier">value</span></code> is an integral constant expression
+ that evaluates to <span class="emphasis"><em>false</em></span>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
<code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">U</span><span class="special">>::</span><span class="identifier">value_type</span></code>
is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
</p></blockquote></div>
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/promote.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/promote.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/rank.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/rank.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/rank.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/boost_typetraits/user_defined.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/boost_typetraits/user_defined.html (original)
+++ branches/release/libs/type_traits/doc/html/boost_typetraits/user_defined.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Modified: branches/release/libs/type_traits/doc/html/index.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/index.html (original)
+++ branches/release/libs/type_traits/doc/html/index.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -31,7 +30,7 @@
Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
Ramey and Jeremy Siek</p></div>
<div><div class="legalnotice">
-<a name="id1004975"></a><p>
+<a name="id1007773"></a><p>
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)
</p>
Modified: branches/release/libs/type_traits/doc/html/index/s11.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/index/s11.html (original)
+++ branches/release/libs/type_traits/doc/html/index/s11.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -25,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1077292"></a>Class Index</h2></div></div></div>
+<a name="id1079083"></a>Class Index</h2></div></div></div>
<p><a class="link" href="s11.html#idx_id_0">A</a> <a class="link" href="s11.html#idx_id_1">C</a> <a class="link" href="s11.html#idx_id_2">D</a> <a class="link" href="s11.html#idx_id_3">E</a> <a class="link" href="s11.html#idx_id_4">F</a> <a class="link" href="s11.html#idx_id_5">H</a> <a class="link" href="s11.html#idx_id_6">I</a> <a class="link" href="s11.html#idx_id_7">M</a> <a class="link" href="s11.html#idx_id_8">P</a> <a class="link" href="s11.html#idx_id_9">R</a> <a class="link" href="s11.html#idx_id_10">T</a> </p>
<div class="variablelist"><dl>
<dt>
Modified: branches/release/libs/type_traits/doc/html/index/s12.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/index/s12.html (original)
+++ branches/release/libs/type_traits/doc/html/index/s12.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -25,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1079037"></a>Typedef Index</h2></div></div></div>
+<a name="id1080274"></a>Typedef Index</h2></div></div></div>
<p><a class="link" href="s12.html#idx_id_11">F</a> <a class="link" href="s12.html#idx_id_12">R</a> <a class="link" href="s12.html#idx_id_13">T</a> </p>
<div class="variablelist"><dl>
<dt>
Modified: branches/release/libs/type_traits/doc/html/index/s13.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/index/s13.html (original)
+++ branches/release/libs/type_traits/doc/html/index/s13.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -25,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1079122"></a>Macro Index</h2></div></div></div>
+<a name="id1080360"></a>Macro Index</h2></div></div></div>
<p><a class="link" href="s13.html#idx_id_14">B</a> </p>
<div class="variablelist"><dl>
<dt>
@@ -41,37 +40,70 @@
<dt><span class="term">BOOST_HAS_NOTHROW_ASSIGN</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_HAS_NOTHROW_CONSTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_constructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_NOTHROW_COPY</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_copy.html" title="has_nothrow_copy">has_nothrow_copy</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_ASSIGN</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_CONSTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_COPY</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_copy.html" title="has_trivial_copy">has_trivial_copy</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_DESTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_destructor.html" title="has_trivial_destructor">has_trivial_destructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_VIRTUAL_DESTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_virtual_destructor.html" title="has_virtual_destructor">has_virtual_destructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_ABSTRACT</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_BASE_OF</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_CLASS</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_class.html" title="is_class">is_class</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_CONVERTIBLE</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_EMPTY</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_empty.html" title="is_empty">is_empty</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_ENUM</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_POD</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_pod.html" title="is_pod">is_pod</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_POLYMORPHIC</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_UNION</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_union.html" title="is_union">is_union</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
</dl></div></dd>
</dl></div>
</div>
Modified: branches/release/libs/type_traits/doc/html/index/s14.html
==============================================================================
--- branches/release/libs/type_traits/doc/html/index/s14.html (original)
+++ branches/release/libs/type_traits/doc/html/index/s14.html 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
@@ -24,7 +23,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1079451"></a>Index</h2></div></div></div>
+<a name="id1080754"></a>Index</h2></div></div></div>
<p><a class="link" href="s14.html#idx_id_15">A</a> <a class="link" href="s14.html#idx_id_16">B</a> <a class="link" href="s14.html#idx_id_17">C</a> <a class="link" href="s14.html#idx_id_18">D</a> <a class="link" href="s14.html#idx_id_19">E</a> <a class="link" href="s14.html#idx_id_20">F</a> <a class="link" href="s14.html#idx_id_21">H</a> <a class="link" href="s14.html#idx_id_22">I</a> <a class="link" href="s14.html#idx_id_23">M</a> <a class="link" href="s14.html#idx_id_24">P</a> <a class="link" href="s14.html#idx_id_25">R</a> <a class="link" href="s14.html#idx_id_26">S</a> <a class="link" href="s14.html#idx_id_27">T</a> <a class="link" href="s14.html#idx_id_28">U</a> </p>
<div class="variablelist"><dl>
<dt>
@@ -72,37 +71,70 @@
<dt><span class="term">BOOST_HAS_NOTHROW_ASSIGN</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_HAS_NOTHROW_CONSTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_constructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_NOTHROW_COPY</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_copy.html" title="has_nothrow_copy">has_nothrow_copy</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_ASSIGN</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_CONSTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_COPY</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_copy.html" title="has_trivial_copy">has_trivial_copy</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_TRIVIAL_DESTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_destructor.html" title="has_trivial_destructor">has_trivial_destructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_HAS_VIRTUAL_DESTRUCTOR</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_virtual_destructor.html" title="has_virtual_destructor">has_virtual_destructor</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_ABSTRACT</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_BASE_OF</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_CLASS</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_class.html" title="is_class">is_class</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_CONVERTIBLE</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_EMPTY</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_empty.html" title="is_empty">is_empty</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_ENUM</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_POD</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_pod.html" title="is_pod">is_pod</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
<dt><span class="term">BOOST_IS_POLYMORPHIC</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
<dt><span class="term">BOOST_IS_UNION</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_union.html" title="is_union">is_union</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/intrinsics.html#boost_typetraits.intrinsics.macros_for_compiler_intrinsics" title="Table 1.4. Macros for Compiler Intrinsics">Support for Compiler Intrinsics</a></p></td></tr>
+</table></dd>
</dl></div></dd>
<dt>
<a name="idx_id_17"></a><span class="term">C</span>
@@ -156,11 +188,13 @@
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_assign.html" title="has_nothrow_assign">has_nothrow_assign</a></p></td></tr></table></dd>
<dt><span class="term">has_nothrow_constructor</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_constructor.html" title="has_nothrow_constructor">BOOST_HAS_NOTHROW_CONSTRUCTOR</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_constructor</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_default_constructor</a></p></td></tr>
</table></dd>
<dt><span class="term">has_nothrow_copy</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_copy.html" title="has_nothrow_copy">BOOST_HAS_NOTHROW_COPY</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_copy.html" title="has_nothrow_copy">has_nothrow_copy</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_copy.html" title="has_nothrow_copy">has_nothrow_copy_constructor</a></p></td></tr>
</table></dd>
@@ -169,14 +203,19 @@
<dt><span class="term">has_nothrow_default_constructor</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_constructor</a></p></td></tr></table></dd>
<dt><span class="term">has_trivial_assign</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_assign.html" title="has_trivial_assign">BOOST_HAS_TRIVIAL_ASSIGN</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a></p></td></tr>
+</table></dd>
<dt><span class="term">has_trivial_constructor</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_constructor.html" title="has_trivial_constructor">BOOST_HAS_TRIVIAL_CONSTRUCTOR</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_default_constructor</a></p></td></tr>
</table></dd>
<dt><span class="term">has_trivial_copy</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_copy.html" title="has_trivial_copy">BOOST_HAS_TRIVIAL_COPY</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_copy.html" title="has_trivial_copy">has_trivial_copy</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_copy.html" title="has_trivial_copy">has_trivial_copy_constructor</a></p></td></tr>
</table></dd>
@@ -185,9 +224,15 @@
<dt><span class="term">has_trivial_default_constructor</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a></p></td></tr></table></dd>
<dt><span class="term">has_trivial_destructor</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_destructor.html" title="has_trivial_destructor">has_trivial_destructor</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_destructor.html" title="has_trivial_destructor">BOOST_HAS_TRIVIAL_DESTRUCTOR</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_trivial_destructor.html" title="has_trivial_destructor">has_trivial_destructor</a></p></td></tr>
+</table></dd>
<dt><span class="term">has_virtual_destructor</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/has_virtual_destructor.html" title="has_virtual_destructor">has_virtual_destructor</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_virtual_destructor.html" title="has_virtual_destructor">BOOST_HAS_VIRTUAL_DESTRUCTOR</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/reference/has_virtual_destructor.html" title="has_virtual_destructor">has_virtual_destructor</a></p></td></tr>
+</table></dd>
</dl></div></dd>
<dt>
<a name="idx_id_22"></a><span class="term">I</span>
@@ -218,6 +263,7 @@
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/is_base_of.html" title="is_base_of">is_base_of</a></p></td></tr></table></dd>
<dt><span class="term">is_class</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_class.html" title="is_class">BOOST_IS_CLASS</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/is_class.html" title="is_class">is_class</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/user_defined.html" title="User Defined Specializations">User Defined Specializations</a></p></td></tr>
</table></dd>
@@ -230,7 +276,10 @@
<dt><span class="term">is_convertible</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/is_convertible.html" title="is_convertible">is_convertible</a></p></td></tr></table></dd>
<dt><span class="term">is_empty</span></dt>
-<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/is_empty.html" title="is_empty">is_empty</a></p></td></tr></table></dd>
+<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_empty.html" title="is_empty">BOOST_IS_EMPTY</a></p></td></tr>
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_empty.html" title="is_empty">is_empty</a></p></td></tr>
+</table></dd>
<dt><span class="term">is_enum</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/is_enum.html" title="is_enum">is_enum</a></p></td></tr></table></dd>
<dt><span class="term">is_floating_point</span></dt>
@@ -256,6 +305,7 @@
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/is_object.html" title="is_object">is_object</a></p></td></tr></table></dd>
<dt><span class="term">is_pod</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_pod.html" title="is_pod">BOOST_IS_POD</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/is_pod.html" title="is_pod">is_pod</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/user_defined.html" title="User Defined Specializations">User Defined Specializations</a></p></td></tr>
</table></dd>
@@ -280,6 +330,7 @@
<dd><table class="simplelist" border="0" summary="Simple list"><tr><td><p><a class="link" href="../boost_typetraits/reference/is_stateless.html" title="is_stateless">is_stateless</a></p></td></tr></table></dd>
<dt><span class="term">is_union</span></dt>
<dd><table class="simplelist" border="0" summary="Simple list">
+<tr><td><p><a class="link" href="../boost_typetraits/reference/is_union.html" title="is_union">BOOST_IS_UNION</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/reference/is_union.html" title="is_union">is_union</a></p></td></tr>
<tr><td><p><a class="link" href="../boost_typetraits/user_defined.html" title="User Defined Specializations">User Defined Specializations</a></p></td></tr>
</table></dd>
Modified: branches/release/libs/type_traits/doc/is_base_of.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_base_of.qbk (original)
+++ branches/release/libs/type_traits/doc/is_base_of.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -6,18 +6,19 @@
]
[section:is_base_of is_base_of]
+
template <class Base, class Derived>
struct is_base_of : public __tof {};
__inherit If Base is base class of type Derived or if both types are the same
-then inherits from __true_type,
+class type then inherits from __true_type,
otherwise inherits from __false_type.
This template will detect non-public base classes, and ambiguous base classes.
-Note that `is_base_of<X,X>` will always inherit from __true_type. [*This is the
-case even if `X` is not a class type]. This is a change in behaviour
-from Boost-1.33 in order to track the Technical Report on C++ Library Extensions.
+Note that `is_base_of<X,X>` will inherit from __true_type if X is a class type.
+This is a change in behaviour
+from Boost-1.39.0 in order to track the emerging C++0x standard.
Types `Base` and `Derived` must not be incomplete types.
Modified: branches/release/libs/type_traits/doc/is_class.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_class.qbk (original)
+++ branches/release/libs/type_traits/doc/is_class.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -19,8 +19,10 @@
__compat Without (some as yet unspecified) help from the compiler,
we cannot distinguish between union and class types, as a result this type
will erroneously inherit from __true_type for union types. See also __is_union.
-Currently (May 2005) only Visual C++ 8 has the necessary compiler __intrinsics to
-correctly identify union types, and therefore make is_class function correctly.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_IS_CLASS` is defined.
__examples
Modified: branches/release/libs/type_traits/doc/is_convertible.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_convertible.qbk (original)
+++ branches/release/libs/type_traits/doc/is_convertible.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -9,7 +9,7 @@
template <class From, class To>
struct is_convertible : public __tof {};
-__inherit If an imaginary lvalue of type `From` is convertible to type `To` then
+__inherit If an imaginary rvalue of type `From` is convertible to type `To` then
inherits from __true_type, otherwise inherits from __false_type.
Type From must not be an incomplete type.
@@ -58,7 +58,7 @@
expression that evaluates to /true/.]
[:`is_convertible<int, int>::value` is an integral constant
-expression that evaluates to /false/.]
+expression that evaluates to /true/.]
[:`is_convertible<T, T>::value_type` is the type `bool`.]
Modified: branches/release/libs/type_traits/doc/is_empty.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_empty.qbk (original)
+++ branches/release/libs/type_traits/doc/is_empty.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -19,7 +19,8 @@
__compat In order to correctly detect empty classes this trait relies on either:
* the compiler implementing zero sized empty base classes, or
-* the compiler providing __intrinsics to detect empty classes.
+* the compiler providing __intrinsics to detect empty classes - this latter case can be tested for
+by checking to see if the macro BOOST_IS_EMPTY is defined.
Can not be used with incomplete types.
Modified: branches/release/libs/type_traits/doc/is_pod.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_pod.qbk (original)
+++ branches/release/libs/type_traits/doc/is_pod.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -28,8 +28,12 @@
Without some (as yet unspecified) help from the compiler, is_pod will
never report that a class or struct is a POD; this is always safe,
-if possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have the
-necessary compiler-__intrinsics.
+if possibly sub-optimal.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_IS_POD` is defined.
+
__header ` #include <boost/type_traits/is_pod.hpp>` or ` #include <boost/type_traits.hpp>`
Modified: branches/release/libs/type_traits/doc/is_stateless.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_stateless.qbk (original)
+++ branches/release/libs/type_traits/doc/is_stateless.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -9,7 +9,7 @@
template <class T>
struct is_stateless : public __tof {};
-__inherit Ff T is a stateless type then inherits from __true_type, otherwise
+__inherit If T is a stateless type then inherits from __true_type, otherwise
from __false_type.
Type T must be a complete type.
@@ -33,8 +33,10 @@
Without some (as yet unspecified) help from the compiler, is_stateless will never
report that a class or struct is stateless; this is always safe,
-if possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have the necessary
-compiler __intrinsics to make this template work automatically.
+if possibly sub-optimal.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works".
[endsect]
Modified: branches/release/libs/type_traits/doc/is_union.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_union.qbk (original)
+++ branches/release/libs/type_traits/doc/is_union.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -19,9 +19,12 @@
compiler, we cannot distinguish between union and class types using only standard C++,
as a result this type will never inherit from __true_type, unless the user explicitly
specializes the template for their user-defined union types, or unless the compiler
-supplies some unspecified intrinsic that implements this functionality. Currently
-(May 2005) only Visual C++ 8 has the necessary compiler __intrinsics to make this
-trait "just work" without user intervention.
+supplies some unspecified intrinsic that implements this functionality.
+Currently (May 2011) compilers more recent than Visual C++ 8, GCC-4.3, Greenhills 6.0,
+Intel-11.0, and Codegear have the necessary compiler __intrinsics to ensure that this
+trait "just works". You may also test to see if the necessary __intrinsics are available
+by checking to see if the macro `BOOST_IS_UNION` is defined.
+
__header ` #include <boost/type_traits/is_union.hpp>` or ` #include <boost/type_traits.hpp>`
Modified: branches/release/libs/type_traits/doc/is_virtual_base_of.qbk
==============================================================================
--- branches/release/libs/type_traits/doc/is_virtual_base_of.qbk (original)
+++ branches/release/libs/type_traits/doc/is_virtual_base_of.qbk 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -38,9 +38,12 @@
[:`is_virtual_base_of<Base, Derived>::value` is an integral constant
expression that evaluates to /true/.]
-[:`is_virtual_base_of<Base, Derived>::value` is an integral constant
+[:`is_virtual_base_of<SomeClassType, SomeClassType>::value` is an integral constant
expression that evaluates to /true/.]
+[:`is_virtual_base_of<NotAClassType, NotAClassType>::value` is an integral constant
+expression that evaluates to /false/.]
+
[:`is_virtual_base_of<T, U>::value_type` is the type `bool`.]
[endsect]
Modified: branches/release/libs/type_traits/test/check_type.hpp
==============================================================================
--- branches/release/libs/type_traits/test/check_type.hpp (original)
+++ branches/release/libs/type_traits/test/check_type.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -40,6 +40,32 @@
<< BOOST_STRINGIZE(expression) << "\"");\
}while(0)
+#define BOOST_CHECK_TYPE3(type_expression, type_expression_suffix, expected_type)\
+do{\
+ if(!::boost::is_same< type_expression, type_expression_suffix, expected_type >::value){\
+ BOOST_CHECK_MESSAGE(false, "The expression: \"" << BOOST_STRINGIZE(expression)\
+ << "\" did not have the expected type:\n\tevaluating: boost::is_same<"\
+ << BOOST_STRINGIZE((type_expression, type_expression_suffix)) << ", " << BOOST_STRINGIZE(expected_type)\
+ << ">" << "\n\tfound: "\
+ << typeid(::boost::is_same< type_expression, type_expression_suffix, expected_type >).name());\
+ }else\
+ BOOST_CHECK_MESSAGE(true, "Validating Type Expression: \""\
+ << BOOST_STRINGIZE(expression) << "\"");\
+}while(0)
+
+#define BOOST_CHECK_TYPE4(type_expression, suffix1, suffix2, expected_type)\
+do{\
+ if(!::boost::is_same< type_expression, suffix1, suffix2, expected_type >::value){\
+ BOOST_CHECK_MESSAGE(false, "The expression: \"" << BOOST_STRINGIZE(expression)\
+ << "\" did not have the expected type:\n\tevaluating: boost::is_same<"\
+ << BOOST_STRINGIZE((type_expression, suffix1, suffix2)) << ", " << BOOST_STRINGIZE(expected_type)\
+ << ">" << "\n\tfound: "\
+ << typeid(::boost::is_same< type_expression, suffix1, suffix2, expected_type >).name());\
+ }else\
+ BOOST_CHECK_MESSAGE(true, "Validating Type Expression: \""\
+ << BOOST_STRINGIZE(expression) << "\"");\
+}while(0)
+
#endif
Modified: branches/release/libs/type_traits/test/common_type_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/common_type_test.cpp (original)
+++ branches/release/libs/type_traits/test/common_type_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -103,5 +103,108 @@
assignation_3<C2, C1C2, C1>();
assignation_3<C1C2, C2, C1>();
//assignation_3<C1, C2, C1C2>(); // fails because the common type is the third
+
+ BOOST_CHECK_TYPE(tt::common_type<int>::type, int);
+ BOOST_CHECK_TYPE(tt::common_type<char>::type, char);
+
+ BOOST_CHECK_TYPE3(tt::common_type<char, char>::type, char);
+ BOOST_CHECK_TYPE3(tt::common_type<char, unsigned char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<char, short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<char, unsigned short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<char, int>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<char, unsigned int>::type, unsigned int);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<char, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<char, boost::ulong_long_type>::type, boost::ulong_long_type);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<char, double>::type, double);
+
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, unsigned char>::type, unsigned char);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, unsigned short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, int>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, unsigned int>::type, unsigned int);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, boost::ulong_long_type>::type, boost::ulong_long_type);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned char, double>::type, double);
+
+ BOOST_CHECK_TYPE3(tt::common_type<short, char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<short, unsigned char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<short, short>::type, short);
+ BOOST_CHECK_TYPE3(tt::common_type<short, unsigned short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<short, int>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<short, unsigned int>::type, unsigned int);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<short, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<short, boost::ulong_long_type>::type, boost::ulong_long_type);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<short, double>::type, double);
+
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, unsigned char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, unsigned short>::type, unsigned short);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, int>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, unsigned int>::type, unsigned int);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, boost::ulong_long_type>::type, boost::ulong_long_type);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned short, double>::type, double);
+
+ BOOST_CHECK_TYPE3(tt::common_type<int, char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<int, unsigned char>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<int, short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<int, unsigned short>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<int, int>::type, int);
+ BOOST_CHECK_TYPE3(tt::common_type<int, unsigned int>::type, unsigned int);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<int, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<int, boost::ulong_long_type>::type, boost::ulong_long_type);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<int, double>::type, double);
+
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, char>::type, unsigned int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, unsigned char>::type, unsigned int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, short>::type, unsigned int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, unsigned short>::type, unsigned int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, int>::type, unsigned int);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, unsigned int>::type, unsigned int);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, boost::ulong_long_type>::type, boost::ulong_long_type);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<unsigned int, double>::type, double);
+
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, char>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, unsigned char>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, short>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, unsigned short>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, int>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, unsigned int>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, boost::long_long_type>::type, boost::long_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, boost::ulong_long_type>::type, boost::ulong_long_type);
+ BOOST_CHECK_TYPE3(tt::common_type<boost::long_long_type, double>::type, double);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<double, char>::type, double);
+ BOOST_CHECK_TYPE3(tt::common_type<double, unsigned char>::type, double);
+ BOOST_CHECK_TYPE3(tt::common_type<double, short>::type, double);
+ BOOST_CHECK_TYPE3(tt::common_type<double, unsigned short>::type, double);
+ BOOST_CHECK_TYPE3(tt::common_type<double, int>::type, double);
+ BOOST_CHECK_TYPE3(tt::common_type<double, unsigned int>::type, double);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE3(tt::common_type<double, boost::long_long_type>::type, double);
+ BOOST_CHECK_TYPE3(tt::common_type<double, boost::ulong_long_type>::type, double);
+#endif
+ BOOST_CHECK_TYPE3(tt::common_type<double, double>::type, double);
+
+ BOOST_CHECK_TYPE4(tt::common_type<double, char, int>::type, double);
+#ifndef BOOST_NO_LONG_LONG
+ BOOST_CHECK_TYPE4(tt::common_type<unsigned, char, boost::long_long_type>::type, boost::long_long_type);
+#endif
}
TT_TEST_END
Modified: branches/release/libs/type_traits/test/has_nothrow_assign_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/has_nothrow_assign_test.cpp (original)
+++ branches/release/libs/type_traits/test/has_nothrow_assign_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -193,7 +193,7 @@
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int[2][4][5][6][3]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<UDT>::value, false);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<void>::value, true);
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<void>::value, false);
// cases we would like to succeed but can't implement in the language:
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<empty_POD_UDT>::value, true, false);
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<POD_UDT>::value, true, false);
Modified: branches/release/libs/type_traits/test/has_nothrow_constr_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/has_nothrow_constr_test.cpp (original)
+++ branches/release/libs/type_traits/test/has_nothrow_constr_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -151,7 +151,7 @@
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int[2][4][5][6][3]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<UDT>::value, false);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<void>::value, true);
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<void>::value, false);
// cases we would like to succeed but can't implement in the language:
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<empty_POD_UDT>::value, true, false);
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<POD_UDT>::value, true, false);
Modified: branches/release/libs/type_traits/test/has_nothrow_copy_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/has_nothrow_copy_test.cpp (original)
+++ branches/release/libs/type_traits/test/has_nothrow_copy_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -189,7 +189,7 @@
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int[3][2]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int[2][4][5][6][3]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<void>::value, true);
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<void>::value, false);
// cases we would like to succeed but can't implement in the language:
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<empty_POD_UDT>::value, true, false);
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<POD_UDT>::value, true, false);
Modified: branches/release/libs/type_traits/test/has_trivial_assign_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/has_trivial_assign_test.cpp (original)
+++ branches/release/libs/type_traits/test/has_trivial_assign_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -185,7 +185,7 @@
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int[2][4][5][6][3]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<UDT>::value, false);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<void>::value, true);
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<void>::value, false);
// cases we would like to succeed but can't implement in the language:
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<empty_POD_UDT>::value, true, false);
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<POD_UDT>::value, true, false);
Modified: branches/release/libs/type_traits/test/has_trivial_copy_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/has_trivial_copy_test.cpp (original)
+++ branches/release/libs/type_traits/test/has_trivial_copy_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -185,7 +185,7 @@
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int[3][2]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int[2][4][5][6][3]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<void>::value, true);
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<void>::value, false);
// cases we would like to succeed but can't implement in the language:
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<empty_POD_UDT>::value, true, false);
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<POD_UDT>::value, true, false);
Modified: branches/release/libs/type_traits/test/has_trivial_destructor_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/has_trivial_destructor_test.cpp (original)
+++ branches/release/libs/type_traits/test/has_trivial_destructor_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -154,7 +154,7 @@
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int[2][4][5][6][3]>::value, true);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<UDT>::value, false);
BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<void>::value, true);
+BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<void>::value, false);
// cases we would like to succeed but can't implement in the language:
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<empty_POD_UDT>::value, true, false);
BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<POD_UDT>::value, true, false);
Modified: branches/release/libs/type_traits/test/is_convertible_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/is_convertible_test.cpp (original)
+++ branches/release/libs/type_traits/test/is_convertible_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -11,6 +11,8 @@
#else
# include <boost/type_traits/is_convertible.hpp>
#endif
+#include <boost/utility/enable_if.hpp>
+
template <class T>
struct convertible_from
@@ -22,6 +24,37 @@
struct middle2 : public virtual base2 { };
struct derived2 : public middle2 { };
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
+
+template<typename T>
+struct test_bug_4530
+{
+ template<typename A>
+ test_bug_4530(A&&, typename boost::enable_if<boost::is_convertible<A&&, T> >::type* =0);
+};
+
+struct A4530
+{
+ template <class T>
+ A4530(T);
+};
+
+#endif
+
+#ifdef BOOST_MSVC
+
+struct bug_5271a
+{
+ __declspec(align(16)) int value;
+};
+
+struct bug_5271b
+{
+ __declspec(align(16)) int value;
+ bug_5271b(int v) : value(v) {}
+};
+
+#endif
TT_TEST_BEGIN(is_convertible)
@@ -49,7 +82,7 @@
#endif
// The following four do not compile without member template support:
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,void>::value), true);
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,void>::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<void,void>::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<void,float>::value), false);
@@ -102,7 +135,12 @@
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int, int_constructible>::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float> >::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float const&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float&> >::value), true);
+//
+// These two tests give different results with different compilers, we used to require *true* results
+// from these, but C++0x behaviour requires *false*:
+//
+//BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float&> >::value), false);
+//BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char&> >::value), false);
#if !(defined(__GNUC__) && (__GNUC__ < 4))
// GCC 3.x emits warnings here, which causes the tests to fail when we compile with warnings-as-errors:
@@ -113,7 +151,6 @@
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char> >::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char const&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char&> >::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float&,convertible_from<float> >::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float const&,convertible_from<float> >::value), true);
@@ -140,13 +177,15 @@
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,float>::value), true);
#endif
+#ifndef BOOST_NO_RVALUE_REFERENCES
+// Test bug case 4530:
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<test_bug_4530<A4530>,A4530>::value), true);
+#endif
-TT_TEST_END
-
-
-
-
-
-
+#if defined(BOOST_MSVC) && (BOOST_MSVC > 1310)
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int, bug_5271a>::value), false);
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int, bug_5271b>::value), true);
+#endif
+TT_TEST_END
Modified: branches/release/libs/type_traits/test/remove_pointer_test.cpp
==============================================================================
--- branches/release/libs/type_traits/test/remove_pointer_test.cpp (original)
+++ branches/release/libs/type_traits/test/remove_pointer_test.cpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -15,6 +15,7 @@
BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_1, ::tt::remove_pointer, const, const)
BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_2, ::tt::remove_pointer, volatile, volatile)
BOOST_DECL_TRANSFORM_TEST3(remove_pointer_test_3, ::tt::remove_pointer, *)
+BOOST_DECL_TRANSFORM_TEST3(remove_pointer_test_3b, ::tt::remove_pointer, *const)
BOOST_DECL_TRANSFORM_TEST0(remove_pointer_test_4, ::tt::remove_pointer)
BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_5, ::tt::remove_pointer, const &, const&)
BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_6, ::tt::remove_pointer, &, &)
@@ -30,12 +31,15 @@
BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_6a, ::tt::remove_pointer, &&, &&)
BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_13a, ::tt::remove_pointer, (&&)[2], (&&)[2])
#endif
+BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_14, ::tt::remove_pointer, (*)(long), (long))
+BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_14b, ::tt::remove_pointer, (*const)(long), (long))
TT_TEST_BEGIN(remove_pointer)
remove_pointer_test_1();
remove_pointer_test_2();
remove_pointer_test_3();
+ remove_pointer_test_3b();
remove_pointer_test_4();
remove_pointer_test_5();
remove_pointer_test_6();
@@ -51,7 +55,8 @@
remove_pointer_test_6a();
remove_pointer_test_13a();
#endif
-
+ remove_pointer_test_14();
+ remove_pointer_test_14b();
TT_TEST_END
Modified: branches/release/libs/type_traits/test/test.hpp
==============================================================================
--- branches/release/libs/type_traits/test/test.hpp (original)
+++ branches/release/libs/type_traits/test/test.hpp 2011-04-25 08:26:48 EDT (Mon, 25 Apr 2011)
@@ -7,6 +7,12 @@
#ifndef TT_TEST_HPP
#define TT_TEST_HPP
+#include <boost/config.hpp>
+
+#if defined(_WIN32_WCE) && defined(BOOST_MSVC)
+#pragma warning(disable:4201)
+#endif
+
#ifdef USE_UNIT_TEST
# include <boost/test/unit_test.hpp>
#endif
@@ -206,7 +212,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