More Oracle C++ fixes:

Disable noexcept code for is_destructible - Oracle seems to always return false.
Filter has_trivial_move_assign through is_assignable.
This commit is contained in:
jzmaddock
2015-06-14 19:34:26 +01:00
parent b554c5ae26
commit 642bf8377d
2 changed files with 15 additions and 3 deletions

View File

@ -11,7 +11,7 @@
#include <boost/type_traits/has_trivial_destructor.hpp>
#if !defined(BOOST_NO_CXX11_NOEXCEPT)
#if !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(__SUNPRO_CC)
#include <boost/type_traits/declval.hpp>
#include <boost/type_traits/is_destructible.hpp>

View File

@ -28,14 +28,26 @@
#include <boost/type_traits/is_volatile.hpp>
#endif
namespace boost {
#ifdef __SUNPRO_CC
#include <boost/type_traits/is_assignable.hpp>
#include <boost/type_traits/remove_const.hpp>
#if __cplusplus >= 201103
#define SOLARIS_EXTRA_CHECK && is_assignable<typename remove_const<T>::type&, typename remove_const<T>::type&&>::value
#endif
#endif
#ifndef SOLARIS_EXTRA_CHECK
#define SOLARIS_EXTRA_CHECK
#endif
namespace boost{
template <typename T>
struct has_trivial_move_assign : public integral_constant<bool,
#ifdef BOOST_HAS_TRIVIAL_MOVE_ASSIGN
BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)
#else
::boost::is_pod<T>::value && !::boost::is_const<T>::value && !::boost::is_volatile<T>::value
::boost::is_pod<T>::value && !::boost::is_const<T>::value && !::boost::is_volatile<T>::value SOLARIS_EXTRA_CHECK
#endif
> {};