source: NonGTP/Boost/boost/python/pointee.hpp @ 857

Revision 857, 986 bytes checked in by igarcia, 18 years ago (diff)
Line 
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
10# include <boost/type_traits/object_traits.hpp>
11# include <boost/type_traits/remove_pointer.hpp>
12
13namespace boost { namespace python {
14
15namespace detail
16{
17  template <bool is_ptr = true>
18  struct pointee_impl
19  {
20      template <class T> struct apply : remove_pointer<T> {};
21  };
22
23  template <>
24  struct pointee_impl<false>
25  {
26      template <class T> struct apply
27      {
28          typedef typename T::element_type type;
29      };
30  };
31}
32
33template <class T>
34struct pointee
35    : detail::pointee_impl<
36        ::boost::is_pointer<T>::value
37      >::template apply<T>
38{
39};
40
41}} // namespace boost::python::detail
42
43#endif // POINTEE_DWA2002323_HPP
Note: See TracBrowser for help on using the repository browser.