diff options
Diffstat (limited to 'libs/python/doc/v2/def.html')
-rw-r--r-- | libs/python/doc/v2/def.html | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/libs/python/doc/v2/def.html b/libs/python/doc/v2/def.html new file mode 100644 index 000000000..3c71fd363 --- /dev/null +++ b/libs/python/doc/v2/def.html @@ -0,0 +1,191 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + +<!-- Copyright David Abrahams 2006. 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) --> +<html> + <head> + <meta name="generator" content= + "HTML Tidy for Cygwin (vers 1st April 2002), see www.w3.org"> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <link rel="stylesheet" type="text/css" href="../boost.css"> + + <title>Boost.Python - <boost/python/def.hpp></title> + </head> + + <body> + <table border="0" cellpadding="7" cellspacing="0" width="100%" summary= + "header"> + <tr> + <td valign="top" width="300"> + <h3><a href="../../../../index.htm"><img height="86" width="277" + alt="C++ Boost" src="../../../../boost.png" border="0"></a></h3> + </td> + + <td valign="top"> + <h1 align="center"><a href="../index.html">Boost.Python</a></h1> + + <h2 align="center">Header <boost/python/def.hpp></h2> + </td> + </tr> + </table> + <hr> + + <h2>Contents</h2> + + <dl class="page-index"> + <dt><a href="#introduction">Introduction</a></dt> + + <dt><a href="#functions">Functions</a></dt> + + <dd> + <dl class="page-index"> + <dt><a href="#def-spec">def</a></dt> + </dl> + </dd> + + <dt><a href="#examples">Example</a></dt> + </dl> + <hr> + + <h2><a name="introduction"></a>Introduction</h2> + + <p><code><a href="#def-spec">def</a>()</code> is the function which can + be used to expose C++ functions and callable objects as Python functions + in the current <code><a href="scope.html">scope</a></code>.</p> + + <h2><a name="functions"></a>Functions</h2> + <a name="def-spec"></a>def +<pre> +template <class F> +void def(char const* name, F f); + +template <class Fn, class A1> +void def(char const* name, Fn fn, A1 const&); + +template <class Fn, class A1, class A2> +void def(char const* name, Fn fn, A1 const&, A2 const&); + +template <class Fn, class A1, class A2, class A3> +void def(char const* name, Fn fn, A1 const&, A2 const&, A3 const&); +</pre> + + <dl class="function-semantics"> + <dt><b>Requires:</b> <code>name</code> is an <a href= + "definitions.html#ntbs">ntbs</a> which conforms to Python's <a href= + "http://www.python.org/doc/current/ref/identifiers.html">identifier + naming rules</a>.</dt> + + <dd> + <ul> + <li>If <code>Fn</code> is [derived from] <code><a href= + "object.html#object-spec">object</a></code>, it will be added to + the current scope as a single overload. To be useful, + <code>fn</code> should be <a href= + "http://www.python.org/doc/current/lib/built-in-funcs.html#l2h-6">callable</a>.</li> + + <li> + If <code>a1</code> is the result of an <a href= + "overloads.html#overload-dispatch-expression"><em>overload-dispatch-expression</em></a>, + only the second form is allowed and fn must be a pointer to + function or pointer to member function whose <a href= + "definitions.html#arity">arity</a> is the same as A1's <a href= + "overloads.html#overload-dispatch-expression"><em>maximum + arity</em></a>. + + <dl> + <dt><b>Effects:</b> For each prefix <em>P</em> of + <code>Fn</code>'s sequence of argument types, beginning with + the one whose length is <code>A1</code>'s <a href= + "overloads.html#overload-dispatch-expression"><em>minimum + arity</em></a>, adds a + <code><em>name</em>(</code>...<code>)</code> function overload + to the <a href="scope.html">current scope</a>. Each overload + generated invokes <code>a1</code>'s call-expression with + <em>P</em>, using a copy of <code>a1</code>'s <a href= + "CallPolicies.html">call policies</a>. If the longest valid + prefix of <code>A1</code> contains <em>N</em> types and + <code>a1</code> holds <em>M</em> keywords, an initial sequence + of the keywords are used for all but the first + <em>N</em> - <em>M</em> arguments of each + overload.<br> + </dt> + </dl> + </li> + + <li>Otherwise, fn must be a non-null function or member function + pointer, and a single function overload built around fn is added to + the <a href="scope.html">current scope</a>. If any of + <code>a1</code>-<code>a3</code> are supplied, they may be selected + in any order from the table below.</li> + </ul> + + <table border="1" summary="def() optional arguments"> + <tr> + <th>Memnonic Name</th> + + <th>Requirements/Type properties</th> + + <th>Effects</th> + </tr> + + <tr> + <td>docstring</td> + + <td>Any <a href="definitions.html#ntbs">ntbs</a>.</td> + + <td>Value will be bound to the <code>__doc__</code> attribute of + the resulting method overload.</td> + </tr> + + <tr> + <td>policies</td> + + <td>A model of <a href="CallPolicies.html">CallPolicies</a></td> + + <td>A copy will be used as the call policies of the resulting + method overload.</td> + </tr> + + <tr> + <td>keywords</td> + + <td>The result of a <a href= + "args.html#keyword-expression"><em>keyword-expression</em></a> + specifying no more arguments than the <a href= + "definitions.html#arity">arity</a> of <code>fn</code>.</td> + + <td>A copy will be used as the call policies of the resulting + method overload.</td> + </tr> + </table> + </dd> + </dl> + + <h2><a name="examples"></a>Example</h2> +<pre> +#include <boost/python/def.hpp> +#include <boost/python/module.hpp> +#include <boost/python/args.hpp> + +using namespace boost::python; + +char const* foo(int x, int y) { return "foo"; } + +BOOST_PYTHON_MODULE(def_test) +{ + def("foo", foo, args("x", "y"), "foo's docstring"); +} +</pre> + + <p> + <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan --> + 7 March, 2003 + <!--webbot bot="Timestamp" endspan i-checksum="39359" --> + </p> + + <p><i>© Copyright <a href= + "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p> + </body> +</html> + |