1 // (C) Copyright 2009-2011 Frederic Bron. 2 // 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 #ifndef BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED 10 #define BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED 11 12 #include <boost/type_traits/is_array.hpp> 13 14 #define BOOST_TT_TRAIT_NAME has_pre_decrement 15 #define BOOST_TT_TRAIT_OP -- 16 #define BOOST_TT_FORBIDDEN_IF\ 17 ::boost::type_traits::ice_or<\ 18 /* bool */\ 19 ::boost::is_same< bool, Rhs_nocv >::value,\ 20 /* void* */\ 21 ::boost::type_traits::ice_and<\ 22 ::boost::is_pointer< Rhs_noref >::value,\ 23 ::boost::is_void< Rhs_noptr >::value\ 24 >::value,\ 25 /* (fundamental or pointer) and const */\ 26 ::boost::type_traits::ice_and<\ 27 ::boost::type_traits::ice_or<\ 28 ::boost::is_fundamental< Rhs_nocv >::value,\ 29 ::boost::is_pointer< Rhs_noref >::value\ 30 >::value,\ 31 ::boost::is_const< Rhs_noref >::value\ 32 >::value,\ 33 /* Arrays */ \ 34 ::boost::is_array<Rhs_noref>::value\ 35 >::value 36 37 38 #include <boost/type_traits/detail/has_prefix_operator.hpp> 39 40 #undef BOOST_TT_TRAIT_NAME 41 #undef BOOST_TT_TRAIT_OP 42 #undef BOOST_TT_FORBIDDEN_IF 43 44 #endif 45