Boost.Python - <boost/python/raw_function.hpp>

###  | # 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.