Fixes for msvc-13.

This commit is contained in:
jzmaddock
2014-02-08 16:19:14 +00:00
parent 6f9d6798a7
commit e69dd6740a
3 changed files with 20 additions and 2 deletions

View File

@ -109,8 +109,8 @@
// # define BOOST_ALIGNMENT_OF(T) __alignof(T)
# if defined(_MSC_VER) && (_MSC_VER >= 1700)
# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::boost::is_pod<T>::value) && !::boost::is_volatile<T>::value)
# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::boost::is_pod<T>::value) && ! ::boost::is_const<T>::value && !::boost::is_volatile<T>::value)
# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::boost::is_pod<T>::value) && !::boost::is_volatile<T>::value && !::boost::is_reference<T>::value)
# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::boost::is_pod<T>::value) && ! ::boost::is_const<T>::value && !::boost::is_volatile<T>::value && !::boost::is_reference<T>::value)
# endif
# define BOOST_HAS_TYPE_TRAITS_INTRINSICS

View File

@ -51,6 +51,15 @@ struct is_nothrow_move_assignable_imp{
>::value));
};
#ifdef BOOST_NO_NOEXCEPT
//
// The above logic doesn't quite work in the absense of noexcept,
// this is really to improve things with VC13:
//
template <class T>
struct is_nothrow_move_assignable_imp<T&>{ BOOST_STATIC_CONSTANT(bool, value = false); };
#endif
#else
template <class T>

View File

@ -66,6 +66,15 @@ struct is_nothrow_move_constructible_imp{
#endif
#ifdef BOOST_NO_NOEXCEPT
//
// The above logic doesn't quite work in the absense of noexcept,
// this is really to improve things with VC13:
//
template <class T>
struct is_nothrow_move_constructible_imp<T&>{ BOOST_STATIC_CONSTANT(bool, value = false); };
#endif
}
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::boost::detail::is_nothrow_move_constructible_imp<T>::value)