|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r70057 - in trunk: boost/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/reference libs/type_traits/doc/html/index libs/type_traits/test
From: john_at_[hidden]
Date: 2011-03-17 09:12:53
Author: johnmaddock
Date: 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
New Revision: 70057
URL: http://svn.boost.org/trac/boost/changeset/70057
Log:
Update type_traits tests to reflect C++0x.
Make better/simpler use of C++0x intrinsics where available.
Change a few traits to C++0x behaviour.
Update docs to reflect current intrinsic availability.
Text files modified:
trunk/boost/type_traits/has_nothrow_assign.hpp | 16 +++++--
trunk/boost/type_traits/has_nothrow_constructor.hpp | 24 +++++++++--
trunk/boost/type_traits/has_nothrow_copy.hpp | 24 +++++++++--
trunk/boost/type_traits/has_trivial_assign.hpp | 17 +++++--
trunk/boost/type_traits/has_trivial_constructor.hpp | 8 +++
trunk/boost/type_traits/has_trivial_copy.hpp | 25 +++++++++--
trunk/boost/type_traits/has_trivial_destructor.hpp | 17 +++++--
trunk/boost/type_traits/has_virtual_destructor.hpp | 4 +
trunk/boost/type_traits/intrinsics.hpp | 82 ++++++++------------------------------
trunk/boost/type_traits/is_empty.hpp | 16 +++++-
trunk/boost/type_traits/is_pod.hpp | 12 ++++
trunk/boost/type_traits/is_union.hpp | 8 +++
trunk/libs/type_traits/doc/has_nothrow_constructor.qbk | 8 ++-
trunk/libs/type_traits/doc/has_nothrow_copy.qbk | 6 +
trunk/libs/type_traits/doc/has_trivial_assign.qbk | 9 ++-
trunk/libs/type_traits/doc/has_trivial_constructor.qbk | 9 ++-
trunk/libs/type_traits/doc/has_trivial_copy.qbk | 9 ++-
trunk/libs/type_traits/doc/has_trivial_destructor.qbk | 9 ++-
trunk/libs/type_traits/doc/has_virtual_destructor.qbk | 8 ++
trunk/libs/type_traits/doc/html/boost_typetraits/background.html | 16 +++---
trunk/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 2
trunk/libs/type_traits/doc/html/boost_typetraits/history.html | 8 +-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html | 14 +++---
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html | 12 +++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html | 10 +++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html | 10 +++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html | 10 +++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html | 10 +++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html | 10 +++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html | 9 +++
trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html | 8 ++
trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html | 3
trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html | 13 ++++-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html | 7 +-
trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html | 8 ++
trunk/libs/type_traits/doc/html/index.html | 2
trunk/libs/type_traits/doc/html/index/s11.html | 2
trunk/libs/type_traits/doc/html/index/s12.html | 2
trunk/libs/type_traits/doc/html/index/s13.html | 57 +++++++++++++++++++++-----
trunk/libs/type_traits/doc/html/index/s14.html | 84 ++++++++++++++++++++++++++++++++-------
trunk/libs/type_traits/doc/is_class.qbk | 6 +
trunk/libs/type_traits/doc/is_empty.qbk | 3
trunk/libs/type_traits/doc/is_pod.qbk | 8 ++
trunk/libs/type_traits/doc/is_stateless.qbk | 6 +
trunk/libs/type_traits/doc/is_union.qbk | 9 ++-
trunk/libs/type_traits/test/has_nothrow_assign_test.cpp | 2
trunk/libs/type_traits/test/has_nothrow_constr_test.cpp | 2
trunk/libs/type_traits/test/has_nothrow_copy_test.cpp | 2
trunk/libs/type_traits/test/has_trivial_assign_test.cpp | 2
trunk/libs/type_traits/test/has_trivial_copy_test.cpp | 2
trunk/libs/type_traits/test/has_trivial_destructor_test.cpp | 2
trunk/libs/type_traits/test/is_convertible_test.cpp | 2
52 files changed, 434 insertions(+), 220 deletions(-)
Modified: trunk/boost/type_traits/has_nothrow_assign.hpp
==============================================================================
--- trunk/boost/type_traits/has_nothrow_assign.hpp (original)
+++ trunk/boost/type_traits/has_nothrow_assign.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_nothrow_constructor.hpp
==============================================================================
--- trunk/boost/type_traits/has_nothrow_constructor.hpp (original)
+++ trunk/boost/type_traits/has_nothrow_constructor.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_nothrow_copy.hpp
==============================================================================
--- trunk/boost/type_traits/has_nothrow_copy.hpp (original)
+++ trunk/boost/type_traits/has_nothrow_copy.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_trivial_assign.hpp
==============================================================================
--- trunk/boost/type_traits/has_trivial_assign.hpp (original)
+++ trunk/boost/type_traits/has_trivial_assign.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_trivial_constructor.hpp
==============================================================================
--- trunk/boost/type_traits/has_trivial_constructor.hpp (original)
+++ trunk/boost/type_traits/has_trivial_constructor.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_trivial_copy.hpp
==============================================================================
--- trunk/boost/type_traits/has_trivial_copy.hpp (original)
+++ trunk/boost/type_traits/has_trivial_copy.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_trivial_destructor.hpp
==============================================================================
--- trunk/boost/type_traits/has_trivial_destructor.hpp (original)
+++ trunk/boost/type_traits/has_trivial_destructor.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/has_virtual_destructor.hpp
==============================================================================
--- trunk/boost/type_traits/has_virtual_destructor.hpp (original)
+++ trunk/boost/type_traits/has_virtual_destructor.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/intrinsics.hpp
==============================================================================
--- trunk/boost/type_traits/intrinsics.hpp (original)
+++ trunk/boost/type_traits/intrinsics.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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,12 +87,12 @@
# 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)
@@ -134,9 +132,9 @@
# 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_CONSTRUCTOR(T) (__has_trivial_constructor(T) && ! ::boost::is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && ! ::boost::is_volatile<T>::value)
+# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && ! ::boost::is_volatile<T>::value)
# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
@@ -167,8 +165,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)
@@ -194,13 +192,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)
@@ -214,50 +212,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: trunk/boost/type_traits/is_empty.hpp
==============================================================================
--- trunk/boost/type_traits/is_empty.hpp (original)
+++ trunk/boost/type_traits/is_empty.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/boost/type_traits/is_pod.hpp
==============================================================================
--- trunk/boost/type_traits/is_pod.hpp (original)
+++ trunk/boost/type_traits/is_pod.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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,7 +42,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));
};
@@ -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: trunk/boost/type_traits/is_union.hpp
==============================================================================
--- trunk/boost/type_traits/is_union.hpp (original)
+++ trunk/boost/type_traits/is_union.hpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_nothrow_constructor.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_nothrow_constructor.qbk (original)
+++ trunk/libs/type_traits/doc/has_nothrow_constructor.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_nothrow_copy.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_nothrow_copy.qbk (original)
+++ trunk/libs/type_traits/doc/has_nothrow_copy.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_trivial_assign.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_trivial_assign.qbk (original)
+++ trunk/libs/type_traits/doc/has_trivial_assign.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_trivial_constructor.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_trivial_constructor.qbk (original)
+++ trunk/libs/type_traits/doc/has_trivial_constructor.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_trivial_copy.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_trivial_copy.qbk (original)
+++ trunk/libs/type_traits/doc/has_trivial_copy.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_trivial_destructor.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_trivial_destructor.qbk (original)
+++ trunk/libs/type_traits/doc/has_trivial_destructor.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/has_virtual_destructor.qbk
==============================================================================
--- trunk/libs/type_traits/doc/has_virtual_destructor.qbk (original)
+++ trunk/libs/type_traits/doc/has_virtual_destructor.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/background.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -56,7 +56,7 @@
method available to them.
</p>
<a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id1004448"></a>
+<a name="id984377"></a>
<a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
</h5>
<p>
@@ -84,7 +84,7 @@
given.
</p>
<a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id1004511"></a>
+<a name="id984441"></a>
<a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
</h5>
<p>
@@ -174,7 +174,7 @@
in the default template.
</p>
<a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id1012963"></a>
+<a name="id992892"></a>
<a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
</h5>
<p>
@@ -247,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="id1013329"></a>
+<a name="id993258"></a>
<a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
</h5>
<p>
@@ -379,7 +379,7 @@
</table></div>
</div>
<br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id1013526"></a>
+<a name="id993455"></a>
<a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
</h5>
<p>
@@ -597,7 +597,7 @@
easier to maintain and easier to understand.
</p>
<a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id1014369"></a>
+<a name="id994299"></a>
<a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
</h5>
<p>
@@ -610,7 +610,7 @@
can be optimal as well as generic.
</p>
<a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id1014386"></a>
+<a name="id994316"></a>
<a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
</h5>
<p>
@@ -618,7 +618,7 @@
comments when preparing this article.
</p>
<a name="boost_typetraits.background._anchor_id__background_references____references"></a><h5>
-<a name="id1014403"></a>
+<a name="id994332"></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: trunk/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -103,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="id1018464"></a>
+<a name="id998393"></a>
<a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
Compiler Workarounds:</a>
</h5>
Modified: trunk/libs/type_traits/doc/html/boost_typetraits/history.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/history.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/history.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -27,7 +27,7 @@
<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="id1076582"></a>
+<a name="id1055902"></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">
@@ -41,7 +41,7 @@
</li>
</ul></div>
<a name="boost_typetraits.history.boost_1_45_0"></a><h5>
-<a name="id1076632"></a>
+<a name="id1055953"></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">
@@ -57,7 +57,7 @@
</li>
</ul></div>
<a name="boost_typetraits.history.boost_1_44_0"></a><h5>
-<a name="id1076692"></a>
+<a name="id1056013"></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">
@@ -73,7 +73,7 @@
</li>
</ul></div>
<a name="boost_typetraits.history.boost_1_42_0"></a><h5>
-<a name="id1076748"></a>
+<a name="id1056068"></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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -73,7 +73,7 @@
template arguments is 3.
</p>
<a name="boost_typetraits.reference.common_type.configuration_macros"></a><h5>
-<a name="id1032786"></a>
+<a name="id1013334"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.configuration_macros">Configuration
macros</a>
</h5>
@@ -103,7 +103,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="id1032844"></a>
+<a name="id1013392"></a>
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.tutorial">Tutorial</a>
</h5>
<p>
@@ -138,7 +138,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="id1033145"></a>
+<a name="id1013693"></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>
@@ -160,7 +160,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="id1033445"></a>
+<a name="id1013993"></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>
@@ -240,7 +240,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="id1034311"></a>
+<a name="id1014859"></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>
@@ -267,7 +267,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="id1034591"></a>
+<a name="id1015139"></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>
@@ -303,7 +303,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="id1034875"></a>
+<a name="id1015423"></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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -48,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -50,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -47,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -55,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -53,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -49,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -41,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -47,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -52,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -53,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -65,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: trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html
==============================================================================
--- trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html (original)
+++ trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -46,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: trunk/libs/type_traits/doc/html/index.html
==============================================================================
--- trunk/libs/type_traits/doc/html/index.html (original)
+++ trunk/libs/type_traits/doc/html/index.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -30,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="id1004299"></a><p>
+<a name="id984228"></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: trunk/libs/type_traits/doc/html/index/s11.html
==============================================================================
--- trunk/libs/type_traits/doc/html/index/s11.html (original)
+++ trunk/libs/type_traits/doc/html/index/s11.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -24,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1076845"></a>Class Index</h2></div></div></div>
+<a name="id1056165"></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: trunk/libs/type_traits/doc/html/index/s12.html
==============================================================================
--- trunk/libs/type_traits/doc/html/index/s12.html (original)
+++ trunk/libs/type_traits/doc/html/index/s12.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -24,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1078186"></a>Typedef Index</h2></div></div></div>
+<a name="id1059002"></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: trunk/libs/type_traits/doc/html/index/s13.html
==============================================================================
--- trunk/libs/type_traits/doc/html/index/s13.html (original)
+++ trunk/libs/type_traits/doc/html/index/s13.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -24,7 +24,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1078271"></a>Macro Index</h2></div></div></div>
+<a name="id1059087"></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>
@@ -40,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: trunk/libs/type_traits/doc/html/index/s14.html
==============================================================================
--- trunk/libs/type_traits/doc/html/index/s14.html (original)
+++ trunk/libs/type_traits/doc/html/index/s14.html 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -23,7 +23,7 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1078600"></a>Index</h2></div></div></div>
+<a name="id1059482"></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>
@@ -71,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>
@@ -155,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>
@@ -168,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>
@@ -184,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>
@@ -217,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>
@@ -229,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>
@@ -255,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>
@@ -279,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: trunk/libs/type_traits/doc/is_class.qbk
==============================================================================
--- trunk/libs/type_traits/doc/is_class.qbk (original)
+++ trunk/libs/type_traits/doc/is_class.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/is_empty.qbk
==============================================================================
--- trunk/libs/type_traits/doc/is_empty.qbk (original)
+++ trunk/libs/type_traits/doc/is_empty.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/is_pod.qbk
==============================================================================
--- trunk/libs/type_traits/doc/is_pod.qbk (original)
+++ trunk/libs/type_traits/doc/is_pod.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/doc/is_stateless.qbk
==============================================================================
--- trunk/libs/type_traits/doc/is_stateless.qbk (original)
+++ trunk/libs/type_traits/doc/is_stateless.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -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: trunk/libs/type_traits/doc/is_union.qbk
==============================================================================
--- trunk/libs/type_traits/doc/is_union.qbk (original)
+++ trunk/libs/type_traits/doc/is_union.qbk 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/has_nothrow_assign_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/has_nothrow_assign_test.cpp (original)
+++ trunk/libs/type_traits/test/has_nothrow_assign_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/has_nothrow_constr_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/has_nothrow_constr_test.cpp (original)
+++ trunk/libs/type_traits/test/has_nothrow_constr_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/has_nothrow_copy_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/has_nothrow_copy_test.cpp (original)
+++ trunk/libs/type_traits/test/has_nothrow_copy_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/has_trivial_assign_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/has_trivial_assign_test.cpp (original)
+++ trunk/libs/type_traits/test/has_trivial_assign_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/has_trivial_copy_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/has_trivial_copy_test.cpp (original)
+++ trunk/libs/type_traits/test/has_trivial_copy_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/has_trivial_destructor_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/has_trivial_destructor_test.cpp (original)
+++ trunk/libs/type_traits/test/has_trivial_destructor_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 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: trunk/libs/type_traits/test/is_convertible_test.cpp
==============================================================================
--- trunk/libs/type_traits/test/is_convertible_test.cpp (original)
+++ trunk/libs/type_traits/test/is_convertible_test.cpp 2011-03-17 09:12:44 EDT (Thu, 17 Mar 2011)
@@ -24,7 +24,7 @@
struct middle2 : public virtual base2 { };
struct derived2 : public middle2 { };
-#ifndef BOOST_NO_RVALUE_REFERENCES
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
template<typename T>
struct test_bug_4530
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