37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
// 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_volatile_);
|
|
};
|
|
|
|
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
|