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

Revision 857, 826 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/type_traits/object_traits.hpp>
9
10namespace boost { namespace python { namespace detail {
11
12template <bool is_ptr = true>
13struct pointee_impl
14{
15    template <class T> struct apply : remove_pointer<T> {};
16};
17
18template <>
19struct pointee_impl<false>
20{
21    template <class T> struct apply
22    {
23        typedef typename T::element_type type;
24    };
25};
26
27template <class T>
28struct 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
Note: See TracBrowser for help on using the repository browser.