1 2 // (C) Copyright John Maddock 2005. 3 // Use, modification and distribution are subject to the Boost Software License, 4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt). 6 // 7 // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 9 10 #ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED 11 #define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED 12 13 #include <boost/type_traits/config.hpp> 14 #include <boost/type_traits/is_member_pointer.hpp> 15 #include <boost/type_traits/is_member_function_pointer.hpp> 16 #include <boost/type_traits/detail/ice_and.hpp> 17 #include <boost/type_traits/detail/ice_not.hpp> 18 19 // should be the last #include 20 #include <boost/type_traits/detail/bool_trait_def.hpp> 21 22 namespace boost { 23 24 namespace detail{ 25 26 template <typename T> 27 struct is_member_object_pointer_impl 28 { 29 BOOST_STATIC_CONSTANT( 30 bool, value = (::boost::type_traits::ice_and< 31 ::boost::is_member_pointer<T>::value, 32 ::boost::type_traits::ice_not< 33 ::boost::is_member_function_pointer<T>::value 34 >::value 35 >::value )); 36 }; 37 38 } // namespace detail 39 40 BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_object_pointer,T,::boost::detail::is_member_object_pointer_impl<T>::value) 41 42 } // namespace boost 43 44 #include <boost/type_traits/detail/bool_trait_undef.hpp> 45 46 #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 47