C++ Boost

Boost.Python

Header <boost/python/default_call_policies.hpp>


Contents

Classes
Class default_call_policies
Class default_call_policies synopsis
Class default_call_policies static functions
Class default_result_converter
Class default_result_converter synopsis
Class default_result_converter metafunctions
Example

Classes

Class default_call_policies

default_call_policies is a model of CallPolicies with no precall or postcall behavior and a result_converter which handles by-value returns. Wrapped C++ functions and member functions use default_call_policies unless otherwise specified. You may find it convenient to derive new models of CallPolicies from default_call_policies.

Class default_call_policies synopsis

namespace boost { namespace python
{
    struct default_call_policies
    {
        static bool precall(PyObject*);
        static PyObject* postcall(PyObject*, PyObject* result);
        typedef default_result_converter result_converter;
        template <class Sig> struct extract_return_type : mpl::front<Sig>{};
    };
}}

Class default_call_policies static functions

bool precall(PyObject*);
Returns: true
Throws: nothing
PyObject* postcall(PyObject*, PyObject* result);
Returns: result
Throws: nothing

Class default_result_converter

default_result_converter is a model of ResultConverterGenerator which can be used to wrap C++ functions returning non-pointer types, char const*, and PyObject*, by-value.

Class default_result_converter synopsis

namespace boost { namespace python
{
    struct default_result_converter
    {
        template <class T> struct apply;
    };
}}

Class default_result_converter metafunctions

template <class T> struct apply
Requires: T is not a reference type. If T is a pointer type, T is const char* or PyObject*.
Returns: typedef to_python_value<T const&> type;

Example

This example comes from the Boost.Python implementation itself. Because the return_value_policy class template does not implement precall or postcall behavior, its default base class is default_call_policies:

template <class Handler, class Base = default_call_policies>
struct return_value_policy : Base
{
   typedef Handler result_converter;
};

Revised 11 June, 2007

© Copyright Dave 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)