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