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

Chapter 4. Function Invocation and Creation

Table of Contents

boost/python/args.hpp
Introduction
Class arg
Class arg constructor
Class arg operator=
Keyword-expression operator,
Example
boost/python/call.hpp
Introduction
Function call
Example
boost/python/call_method.hpp
Introduction
Function call_method
Example
boost/python/data_members.hpp
Introduction
Functions
Example
boost/python/make_function.hpp
Introduction
Functions
Example
boost/python/overloads.hpp
Introduction
OverloadDispatcher Concept
Macros
Example
boost/python/ptr.hpp
Introduction
Functions
Class template pointer_wrapper
Class template pointer_wrapper types
Class template pointer_wrapper constructors and destructor
Class template pointer_wrapper observer functions
Metafunctions
Example
boost/python/raw_function.hpp
Introduction
Function raw_function
Example
Function documentation
boost/python/function_doc_signature.hpp
boost/python/pytype_function.hpp
Models of CallPolicies
boost/python/default_call_policies.hpp
boost/python/return_arg.hpp
boost/python/return_internal_reference.hpp
boost/python/return_value_policy.hpp
boost/python/with_custodian_and_ward.hpp
Models of ResultConverter
boost/python/to_python_indirect.hpp
boost/python/to_python_value.hpp
Models of ResultConverterGenerator
boost/python/copy_const_reference.hpp
boost/python/copy_non_const_reference.hpp
boost/python/manage_new_object.hpp
boost/python/reference_existing_object.hpp
boost/python/return_by_value.hpp
boost/python/return_opaque_pointer.hpp

Supplies a family of overloaded functions for specifying argument keywords for wrapped C++ functions.

A keyword-expression results in an object which holds a sequence of ntbses, and whose type encodes the number of keywords specified. The keyword-expression may contain default values for some or all of the keywords it holds

The objects of class arg are keyword-expressions holding one keyword ( size one )

namespace boost { namespace python
{
        struct arg
        {
          template <class T>
                  arg &operator = (T const &value);
          explicit arg (char const *name){elements[0].name = name;}
        };

}}
arg(char const* name);

Requires

The argument must be a ntbs.

Effects

Constructs an arg object holding a keyword with name name.

template <class T> arg &operator = (T const &value);

Requires

The argument must convertible to python.

Effects

Assigns default value for the keyword.

Returns

Reference to this.

keyword-expression operator , (keyword-expression, const arg &kw) const
keyword-expression operator , (keyword-expression, const char *name) const;

Requires

The argument name must be a ntbs.

Effects

Extends the keyword-expression argument with one more keyword.

Returns

The extended keyword-expression.

#include <boost/python/def.hpp>
using namespace boost::python;

int f(double x, double y, double z=0.0, double w=1.0);

BOOST_PYTHON_MODULE(xxx)
{
  def("f", f, (arg("x"), "y", arg("z")=0.0, arg("w")=1.0));
}

PrevUpHomeNext