]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/python/pointee.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / python / pointee.hpp
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 POINTEE_DWA2002323_HPP
6 # define POINTEE_DWA2002323_HPP
7
8 # include <boost/python/detail/prefix.hpp>
9 # include <boost/python/detail/type_traits.hpp>
10
11 namespace boost { namespace python {
12
13 namespace detail
14 {
15 template <bool is_ptr = true>
16 struct pointee_impl
17 {
18 template <class T> struct apply : detail::remove_pointer<T> {};
19 };
20
21 template <>
22 struct pointee_impl<false>
23 {
24 template <class T> struct apply
25 {
26 typedef typename T::element_type type;
27 };
28 };
29 }
30
31 template <class T>
32 struct pointee
33 : detail::pointee_impl<
34 detail::is_pointer<T>::value
35 >::template apply<T>
36 {
37 };
38
39 }} // namespace boost::python
40
41 #endif // POINTEE_DWA2002323_HPP