os/ossrv/ossrv_pub/boost_apis/boost/python/detail/pointee.hpp
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/python/detail/pointee.hpp	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,35 @@
     1.4 +// Copyright David Abrahams 2002.
     1.5 +// Distributed under the Boost Software License, Version 1.0. (See
     1.6 +// accompanying file LICENSE_1_0.txt or copy at
     1.7 +// http://www.boost.org/LICENSE_1_0.txt)
     1.8 +#ifndef POINTEE_DWA2002323_HPP
     1.9 +# define POINTEE_DWA2002323_HPP
    1.10 +
    1.11 +# include <boost/type_traits/object_traits.hpp>
    1.12 +
    1.13 +namespace boost { namespace python { namespace detail { 
    1.14 +
    1.15 +template <bool is_ptr = true>
    1.16 +struct pointee_impl
    1.17 +{
    1.18 +    template <class T> struct apply : remove_pointer<T> {};
    1.19 +};
    1.20 +
    1.21 +template <>
    1.22 +struct pointee_impl<false>
    1.23 +{
    1.24 +    template <class T> struct apply
    1.25 +    {
    1.26 +        typedef typename T::element_type type;
    1.27 +    };
    1.28 +};
    1.29 +
    1.30 +template <class T>
    1.31 +struct pointee
    1.32 +    : pointee_impl<is_pointer<T>::value>::template apply<T>
    1.33 +{
    1.34 +};
    1.35 +
    1.36 +}}} // namespace boost::python::detail
    1.37 +
    1.38 +#endif // POINTEE_DWA2002323_HPP