add a test for shared_ptr with director

This commit is contained in:
Takashi Tamura 2017-04-10 18:53:46 +09:00
commit 1c968b3695
2 changed files with 47 additions and 0 deletions

View file

@ -0,0 +1,23 @@
%module(directors="1") "cpp11_shared_ptr_director"
%{
#include <memory>
%}
%include "std_shared_ptr.i";
%shared_ptr(Created);
%feature("director") Creator;
%inline %{
struct Created {};
struct Creator {
Creator() {};
virtual std::shared_ptr<Created> create() = 0;
virtual ~Creator() {}
};
void crash(Creator* creator) {
std::shared_ptr<Created> ptr = creator->create();
}
%}

View file

@ -0,0 +1,24 @@
require 'cpp11_shared_ptr_director'
include Cpp11_shared_ptr_director
class Derived < Creator
def initialize(flag)
@return_none = flag
super()
end
def create
if @return_none
nil
else
Created.new
end
end
end
crash(Derived.new(false))
crash(Derived.new(true))