From adb85d3d050958051aa88f01f51b71b8632096be Mon Sep 17 00:00:00 2001 From: Erez Geva Date: Mon, 4 Jul 2022 02:14:21 +0200 Subject: Add std::unique_ptr to Perl5. Signed-off-by: Erez Geva --- Lib/perl5/std_unique_ptr.i | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Lib/perl5/std_unique_ptr.i (limited to 'Lib/perl5') 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 unique_ptr {}; +} -- cgit v1.2.1