| // Copyright David Abrahams 2002. |
| // Distributed under the Boost Software License, Version 1.0. (See |
| // accompanying file LICENSE_1_0.txt or copy at |
| // http://www.boost.org/LICENSE_1_0.txt) |
| #ifndef CV_CATEGORY_DWA200222_HPP |
| # define CV_CATEGORY_DWA200222_HPP |
| # include <boost/type_traits/cv_traits.hpp> |
| |
| namespace boost { namespace python { namespace detail { |
| |
| template <bool is_const_, bool is_volatile_> |
| struct cv_tag |
| { |
| BOOST_STATIC_CONSTANT(bool, is_const = is_const_); |
| BOOST_STATIC_CONSTANT(bool, is_volatile = is_const_); |
| }; |
| |
| typedef cv_tag<false,false> cv_unqualified; |
| typedef cv_tag<true,false> const_; |
| typedef cv_tag<false,true> volatile_; |
| typedef cv_tag<true,true> const_volatile_; |
| |
| template <class T> |
| struct cv_category |
| { |
| // BOOST_STATIC_CONSTANT(bool, c = is_const<T>::value); |
| // BOOST_STATIC_CONSTANT(bool, v = is_volatile<T>::value); |
| typedef cv_tag< |
| ::boost::is_const<T>::value |
| , ::boost::is_volatile<T>::value |
| > type; |
| }; |
| |
| }}} // namespace boost::python::detail |
| |
| #endif // CV_CATEGORY_DWA200222_HPP |