/usr/include/boost/python
Edit: /usr/include/boost/python/default_call_policies.hpp (2279B)
// Copyright David Abrahams 2002.
// 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)
#ifndef DEFAULT_CALL_POLICIES_DWA2002131_HPP
# define DEFAULT_CALL_POLICIES_DWA2002131_HPP
# include
# include
# include
# include
# include
# include
# include
namespace boost { namespace python {
template struct to_python_value;
namespace detail
{
// for "readable" error messages
template struct specify_a_return_value_policy_to_wrap_functions_returning
# if defined(__GNUC__) || defined(__EDG__)
{}
# endif
;
}
struct default_result_converter;
struct default_call_policies
{
// Ownership of this argument tuple will ultimately be adopted by
// the caller.
template
static bool precall(ArgumentPackage const&)
{
return true;
}
// Pass the result through
template
static PyObject* postcall(ArgumentPackage const&, PyObject* result)
{
return result;
}
typedef default_result_converter result_converter;
typedef PyObject* argument_package;
template
struct extract_return_type : mpl::front
{
};
};
struct default_result_converter
{
template
struct apply
{
typedef typename mpl::if_<
mpl::or_, detail::is_reference >
, detail::specify_a_return_value_policy_to_wrap_functions_returning
, boost::python::to_python_value<
typename detail::value_arg::type
>
>::type type;
};
};
// Exceptions for c strings an PyObject*s
template <>
struct default_result_converter::apply
{
typedef boost::python::to_python_value type;
};
template <>
struct default_result_converter::apply
{
typedef boost::python::to_python_value type;
};
}} // namespace boost::python
#endif // DEFAULT_CALL_POLICIES_DWA2002131_HPP