mirror of
https://github.com/boostorg/python.git
synced 2026-01-21 05:02:17 +00:00
114 lines
4.2 KiB
HTML
114 lines
4.2 KiB
HTML
<!-- 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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link rel="stylesheet" type="text/css" href=../../../../boost.css>
|
|
<title>Boost.Python - ResultConverter Concept</title>
|
|
</head>
|
|
<body link="#0000ff" vlink="#800080">
|
|
<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">ResultConverter Concept</h2>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<hr>
|
|
<dl class="page-index">
|
|
<dt><a href="#introduction">Introduction</a></dt>
|
|
<dt><a href="#concept-requirements">Concept Requirements</a></dt>
|
|
<dl class="page-index">
|
|
<dt><a href="#ResultConverter-concept">ResultConverter Concept</a></dt>
|
|
<dt><a href="#ResultConverterGenerator-concept">ResultConverterGenerator Concept</a></dt>
|
|
</dl>
|
|
</dl>
|
|
|
|
<h2><a name="introduction"></a>Introduction</h2>
|
|
|
|
<p>A ResultConverter for a type <code>T</code> is a type whose
|
|
instances can be used to convert C++ return values of type
|
|
<code>T</code> <code>to_python</code>. A ResultConverterGenerator is
|
|
an MPL unary metafunction class which, given the return type of a C++
|
|
function, returns a ResultConverter for that type. ResultConverters in
|
|
Boost.Python generally inspect library's registry of converters to
|
|
find a suitable converter, but converters which don't use the registry
|
|
are also possible.
|
|
|
|
<h2><a name="concept-requirements"></a>Concept Requirements</h2>
|
|
<h3><a name="ResultConverter-concept"></a>ResultConverter Concept</h3>
|
|
|
|
<p>In the table below, <code><b>C</b></code> denotes a ResultConverter
|
|
type for a type <b><code>R</code></b> , <code><b>c</b></code> denotes
|
|
an object of type <code><b>C</b></code> , and <code><b>r</b></code>
|
|
denotes an object of type <code><b>R</b></code>.
|
|
|
|
<table summary="ResultConverter expressions" border="1" cellpadding="5">
|
|
|
|
<tr>
|
|
<td><b>Expression</b></td>
|
|
<td><b>Type</b></td>
|
|
<td><b>Semantics</b></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top"><code>C c;</code></td>
|
|
<td>
|
|
<td>Constructs a <code>C</code> object.
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top"><code>c.convertible()</code></td>
|
|
<td>convertible to <code>bool</code></td>
|
|
<td><code>false</code> iff no conversion from any <code>R</code> value
|
|
to a Python object is possible.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top"><code>c(r)</code></td>
|
|
<td>convertible to <code>PyObject*</code></td>
|
|
<td>A pointer to a Python object corresponding to <code>r</code>,
|
|
or <code>0</code> iff <code>r</code> could not be converted
|
|
<code>to_python</code>, in which case <a
|
|
href="http://www.python.org/doc/current/api/exceptionHandling.html#l2h-71">PyErr_Occurred</a>
|
|
should return non-zero.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3><a name="ResultConverterGenerator-concept"></a>ResultConverterGenerator Concept</h3>
|
|
<p>In the table below, <code><b>G</b></code> denotes a
|
|
ResultConverterGenerator type and <code><b>R</b></code> denotes a possible
|
|
C++ function return type.
|
|
|
|
<table summary="ResultConverterGenerator expressions" border="1" cellpadding="5">
|
|
<tr>
|
|
<td><b>Expression</b></td>
|
|
<td><b>Requirements</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top"><code>G::apply<R>::type</code></td>
|
|
<td>A ResultConverter type for <code>R</code>.</td>
|
|
</table>
|
|
|
|
<hr>
|
|
<p>Revised
|
|
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
|
|
09 May, 2002 <!--Luann's birthday! -->
|
|
<!--webbot bot="Timestamp" endspan i-checksum="39359" -->
|
|
</p>
|
|
<p><i>© Copyright <a href="../../../../people/dave_abrahams.htm">Dave
|
|
Abrahams</a> 2002. </i>
|
|
|
|
<p>Permission to copy, use, modify, sell
|
|
and distribute this software is granted provided this copyright notice appears
|
|
in all copies. This software is provided "as is" without express or implied
|
|
warranty, and with no claim as to its suitability for any purpose.
|
|
</body>
|
|
</html>
|