9 #ifndef BOOST_TT_IS_ASSIGNABLE_HPP_INCLUDED
10 #define BOOST_TT_IS_ASSIGNABLE_HPP_INCLUDED
22 #if !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800)
33 template<typename T, typename U, typename = decltype(boost::declval<T>() = boost::declval<U>())>
36 template<
typename,
typename>
42 template <
class T,
class U>
struct is_assignable :
public integral_constant<bool, sizeof(detail::is_assignable_imp::test<T, U>(0)) == sizeof(boost::type_traits::yes_type)>{};
62 template <
class T,
class U>
struct is_assignable<const
T&, U> :
public integral_constant<bool, false>{};
63 template <
class U>
struct is_assignable<void, U> :
public integral_constant<bool, false>{};
64 template <
class U>
struct is_assignable<void const, U> :
public integral_constant<bool, false>{};
65 template <
class U>
struct is_assignable<void volatile, U> :
public integral_constant<bool, false>{};
66 template <
class U>
struct is_assignable<void const volatile, U> :
public integral_constant<bool, false>{};
77 #endif // BOOST_TT_IS_ASSIGNABLE_HPP_INCLUDED