diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2013-02-01 19:17:21 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2013-02-01 19:17:21 +0000 |
commit | a043b55b69d4587a1bd95b934b85acb683e415e6 (patch) | |
tree | 2e8237d18d53a7af4f24b0d7039322eca6c6bbef /Doc/Manual | |
parent | 2a90cc6a9807c2cd136befaada1ff91276e7d01c (diff) | |
download | swig-a043b55b69d4587a1bd95b934b85acb683e415e6.tar.gz |
Better clarification about polymorphic wrappers for function objects - std::function
Diffstat (limited to 'Doc/Manual')
-rw-r--r-- | Doc/Manual/Cpp0x.html | 24 |
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<int ( int, int )> 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 <functional> +std::function<void (int, int)> 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> |