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

Click here to view the latest version of this page.

C++ Boost

Boost.Python

Header <boost/python/raw_function.hpp>


Contents

Introduction
Functions
raw_function
Example

Introduction

raw_function(...) is used to convert a function taking a tuple and a dict into a Python callable object which accepts a variable number of arguments and arbitrary keyword arguments.

Functions

raw_function
template <class F>
object raw_function(F f, std::size_t min_args = 0);
Requires: f(tuple(), dict()) is well-formed.
Returns: a callable object which requires at least min_args arguments. When called, the actual non-keyword arguments will be passed in a tuple as the first argument to f, and the keyword arguments will be passed in a dict as the second argument to f.

Example

C++:
#include <boost/python/def.hpp>
#include <boost/python/tuple.hpp>
#include <boost/python/dict.hpp>
#include <boost/python/module.hpp>
#include <boost/python/raw_function.hpp>

using namespace boost::python;

tuple raw(tuple args, dict kw)
{
    return make_tuple(args, kw);
}

BOOST_PYTHON_MODULE(raw_test)
{
    def("raw", raw_function(raw));
}
Python:
>>> from raw_test import *

>>> raw(3, 4, foo = 'bar', baz = 42)
((3, 4), {'foo': 'bar', 'baz': 42})

7 March, 2003

© Copyright Dave Abrahams 2002. All Rights Reserved.