aboutsummaryrefslogtreecommitdiff
path: root/Doc/Manual
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2013-02-01 19:17:21 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2013-02-01 19:17:21 +0000
commita043b55b69d4587a1bd95b934b85acb683e415e6 (patch)
tree2e8237d18d53a7af4f24b0d7039322eca6c6bbef /Doc/Manual
parent2a90cc6a9807c2cd136befaada1ff91276e7d01c (diff)
downloadswig-a043b55b69d4587a1bd95b934b85acb683e415e6.tar.gz
Better clarification about polymorphic wrappers for function objects - std::function
Diffstat (limited to 'Doc/Manual')
-rw-r--r--Doc/Manual/Cpp0x.html24
1 files changed, 21 insertions, 3 deletions
diff --git a/Doc/Manual/Cpp0x.html b/Doc/Manual/Cpp0x.html
index 0200fdf5c..aa8c41225 100644
--- a/Doc/Manual/Cpp0x.html
+++ b/Doc/Manual/Cpp0x.html
@@ -735,14 +735,32 @@ int main() {
<H3><a name="Cpp0x_Polymorphous_wrappers_for_function_objects"></a>7.3.7 Polymorphous wrappers for function objects</H3>
-<p>SWIG fully supports function template wrappers and function objects:</p>
+<p>
+SWIG supports functor classes in some languages in a very natural way.
+However nothing is provided yet for the new <tt>std::function</tt> template.
+SWIG will parse usage of the template like any other template.
+</p>
<div class="code"><pre>
-function&lt;int ( int, int )&gt; pF; // function template wrapper
+%rename(__call__) Test::operator(); // Default renaming used for Python
struct Test {
- bool operator()( short x, short y ); // function object
+ bool operator()(int x, int y); // function object
};
+
+#include &lt;functional&gt;
+std::function&lt;void (int, int)&gt; pF = Test; // function template wrapper
+
+</pre></div>
+
+<p>
+Example of supported usage of the plain functor from Python is shown below.
+It does not involve <tt>std::function</tt>.
+</p>
+
+<div class="targetlang">
+t = Test()
+b = t(1,2) # invoke C++ function object
</pre></div>
<H3><a name="Cpp0x_Type_traits_for_metaprogramming"></a>7.3.8 Type traits for metaprogramming</H3>