]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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/type_traits/object_traits.hpp> | |
9 | ||
10 | namespace boost { namespace python { namespace detail { | |
11 | ||
12 | template <bool is_ptr = true> | |
13 | struct pointee_impl | |
14 | { | |
15 | template <class T> struct apply : remove_pointer<T> {}; | |
16 | }; | |
17 | ||
18 | template <> | |
19 | struct pointee_impl<false> | |
20 | { | |
21 | template <class T> struct apply | |
22 | { | |
23 | typedef typename T::element_type type; | |
24 | }; | |
25 | }; | |
26 | ||
27 | template <class T> | |
28 | struct pointee | |
29 | : pointee_impl<is_pointer<T>::value>::template apply<T> | |
30 | { | |
31 | }; | |
32 | ||
33 | }}} // namespace boost::python::detail | |
34 | ||
35 | #endif // POINTEE_DWA2002323_HPP |