1 // Copyright David Abrahams 2002. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 #ifndef CV_CATEGORY_DWA200222_HPP 6 # define CV_CATEGORY_DWA200222_HPP 7 # include <boost/type_traits/cv_traits.hpp> 8 9 namespace boost { namespace python { namespace detail { 10 11 template <bool is_const_, bool is_volatile_> 12 struct cv_tag 13 { 14 BOOST_STATIC_CONSTANT(bool, is_const = is_const_); 15 BOOST_STATIC_CONSTANT(bool, is_volatile = is_volatile_); 16 }; 17 18 typedef cv_tag<false,false> cv_unqualified; 19 typedef cv_tag<true,false> const_; 20 typedef cv_tag<false,true> volatile_; 21 typedef cv_tag<true,true> const_volatile_; 22 23 template <class T> 24 struct cv_category 25 { 26 // BOOST_STATIC_CONSTANT(bool, c = is_const<T>::value); 27 // BOOST_STATIC_CONSTANT(bool, v = is_volatile<T>::value); 28 typedef cv_tag< 29 ::boost::is_const<T>::value 30 , ::boost::is_volatile<T>::value 31 > type; 32 }; 33 34 }}} // namespace boost::python::detail 35 36 #endif // CV_CATEGORY_DWA200222_HPP 37