/usr/include/boost/python
Edit: /usr/include/boost/python/return_opaque_pointer.hpp (1290B)
// Copyright Gottfried Ganßauge 2003.
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
/*
* Generic Return value converter generator for opaque C++-pointers
*/
# ifndef RETURN_OPAQUE_POINTER_HPP_
# define RETURN_OPAQUE_POINTER_HPP_
# include
# include
# include
# include
# include
# include
namespace boost { namespace python {
namespace detail
{
template
static void opaque_pointee(Pointee const volatile*)
{
force_instantiate(opaque::instance);
}
}
struct return_opaque_pointer
{
template
struct apply
{
BOOST_MPL_ASSERT_MSG( is_pointer::value, RETURN_OPAQUE_POINTER_EXPECTS_A_POINTER_TYPE, (R));
struct type :
boost::python::to_python_value<
typename detail::value_arg::type
>
{
type() { detail::opaque_pointee(R()); }
};
};
};
}} // namespace boost::python
# endif // RETURN_OPAQUE_POINTER_HPP_