diff options
author | Erez Geva <ErezGeva2@gmail.com> | 2022-07-04 02:14:21 +0200 |
---|---|---|
committer | Erez Geva <ErezGeva2@gmail.com> | 2022-07-09 13:52:43 +0200 |
commit | adb85d3d050958051aa88f01f51b71b8632096be (patch) | |
tree | d47555ddabe69e11c1ede2d7a7bf952d6972e3fb /Lib/perl5 | |
parent | 22a4355f340e9a844d5e5d8d0528d767c4808ebb (diff) | |
download | swig-adb85d3d050958051aa88f01f51b71b8632096be.tar.gz |
Add std::unique_ptr<type> to Perl5.
Signed-off-by: Erez Geva <ErezGeva2@gmail.com>
Diffstat (limited to 'Lib/perl5')
-rw-r--r-- | Lib/perl5/std_unique_ptr.i | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/perl5/std_unique_ptr.i b/Lib/perl5/std_unique_ptr.i new file mode 100644 index 000000000..163c7c2d1 --- /dev/null +++ b/Lib/perl5/std_unique_ptr.i @@ -0,0 +1,19 @@ +/* ----------------------------------------------------------------------------- + * std_unique_ptr.i + * + * The typemaps here allow handling functions returning std::unique_ptr<>, + * which is the most common use of this type. If you have functions taking it + * as parameter, these typemaps can't be used for them and you need to do + * something else (e.g. use shared_ptr<> which SWIG supports fully). + * ----------------------------------------------------------------------------- */ + +%define %unique_ptr(TYPE) +%typemap (out) std::unique_ptr< TYPE > %{ + %set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags)); +%} +%template() std::unique_ptr< TYPE >; +%enddef + +namespace std { + template <class T> class unique_ptr {}; +} |