Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

boost/python/call.hpp

Introduction
Function call
Example
<boost/python/call.hpp> defines the call family of overloaded function templates, used to invoke Python callable objects from C++.
template <class R, class A1, class A2, ... class An>
R call(PyObject* callable, A1 const&, A2 const&, ... An const&)

Requires

R is a pointer type, reference type, or a complete type with an accessible copy constructor

Effects

Invokes callable(a1, a2, ...an) in Python, where a1...an are the arguments to call(), converted to Python objects.

Returns

The result of the Python call, converted to the C++ type R.

Rationale

For a complete semantic description and rationale, see this page.

The following C++ function applies a Python callable object to its two arguments and returns the result. If a Python exception is raised or the result can't be converted to a double, an exception is thrown.

double apply2(PyObject* func, double x, double y)
{
   return boost::python::call<double>(func, x, y);
}

PrevUpHomeNext