File indexing completed on 2025-01-18 09:50:38
0001
0002
0003
0004
0005
0006 #ifndef BOOST_PYTHON_DETAIL_TYPE_TRAITS_HPP
0007 # define BOOST_PYTHON_DETAIL_TYPE_TRAITS_HPP
0008
0009
0010 #include <boost/config.hpp>
0011 #ifdef BOOST_NO_CXX11_HDR_TYPE_TRAITS
0012 # include <boost/type_traits/transform_traits.hpp>
0013 # include <boost/type_traits/same_traits.hpp>
0014 # include <boost/type_traits/cv_traits.hpp>
0015 # include <boost/type_traits/is_polymorphic.hpp>
0016 # include <boost/type_traits/composite_traits.hpp>
0017 # include <boost/type_traits/conversion_traits.hpp>
0018 # include <boost/type_traits/add_pointer.hpp>
0019 # include <boost/type_traits/remove_pointer.hpp>
0020 # include <boost/type_traits/is_void.hpp>
0021 # include <boost/type_traits/object_traits.hpp>
0022 # include <boost/type_traits/add_lvalue_reference.hpp>
0023 # include <boost/type_traits/function_traits.hpp>
0024 # include <boost/type_traits/is_scalar.hpp>
0025 # include <boost/type_traits/alignment_traits.hpp>
0026 # include <boost/mpl/bool.hpp>
0027 #else
0028 # include <type_traits>
0029 #endif
0030
0031 # include <boost/type_traits/is_base_and_derived.hpp>
0032 # include <boost/type_traits/alignment_traits.hpp>
0033 # include <boost/type_traits/has_trivial_copy.hpp>
0034
0035
0036 namespace boost { namespace python { namespace detail {
0037
0038 #ifdef BOOST_NO_CXX11_HDR_TYPE_TRAITS
0039 using boost::alignment_of;
0040 using boost::add_const;
0041 using boost::add_cv;
0042 using boost::add_lvalue_reference;
0043 using boost::add_pointer;
0044
0045 using boost::is_array;
0046 using boost::is_class;
0047 using boost::is_const;
0048 using boost::is_convertible;
0049 using boost::is_enum;
0050 using boost::is_function;
0051 using boost::is_integral;
0052 using boost::is_lvalue_reference;
0053 using boost::is_member_function_pointer;
0054 using boost::is_member_pointer;
0055 using boost::is_pointer;
0056 using boost::is_polymorphic;
0057 using boost::is_reference;
0058 using boost::is_same;
0059 using boost::is_scalar;
0060 using boost::is_union;
0061 using boost::is_void;
0062 using boost::is_volatile;
0063
0064 using boost::remove_reference;
0065 using boost::remove_pointer;
0066 using boost::remove_cv;
0067 using boost::remove_const;
0068
0069 using boost::mpl::true_;
0070 using boost::mpl::false_;
0071 #else
0072 using std::alignment_of;
0073 using std::add_const;
0074 using std::add_cv;
0075 using std::add_lvalue_reference;
0076 using std::add_pointer;
0077
0078 using std::is_array;
0079 using std::is_class;
0080 using std::is_const;
0081 using std::is_convertible;
0082 using std::is_enum;
0083 using std::is_function;
0084 using std::is_integral;
0085 using std::is_lvalue_reference;
0086 using std::is_member_function_pointer;
0087 using std::is_member_pointer;
0088 using std::is_pointer;
0089 using std::is_polymorphic;
0090 using std::is_reference;
0091 using std::is_same;
0092 using std::is_scalar;
0093 using std::is_union;
0094 using std::is_void;
0095 using std::is_volatile;
0096
0097 using std::remove_reference;
0098 using std::remove_pointer;
0099 using std::remove_cv;
0100 using std::remove_const;
0101
0102 typedef std::integral_constant<bool, true> true_;
0103 typedef std::integral_constant<bool, false> false_;
0104 #endif
0105 using boost::is_base_and_derived;
0106 using boost::type_with_alignment;
0107 using boost::has_trivial_copy;
0108 }}}
0109
0110
0111 #endif