| %module(directors="1") director_wstring; |
| %include <stl.i> |
| |
| #ifndef SWIG_STL_UNIMPL |
| |
| %include std_vector.i |
| %include std_wstring.i |
| |
| // Using thread unsafe wrapping |
| %warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) A; |
| |
| %{ |
| #include <vector> |
| #include <string> |
| %} |
| |
| %feature("director") A; |
| %inline %{ |
| |
| struct A |
| { |
| A(const std::wstring& first) |
| : m_strings(1, first) |
| {} |
| |
| virtual ~A() {} |
| |
| virtual const std::wstring& get_first() const |
| { return get(0); } |
| |
| virtual const std::wstring& get(int n) const |
| { return m_strings[n]; } |
| |
| virtual const std::wstring& call_get_first() const |
| { return get_first(); } |
| |
| virtual const std::wstring& call_get(int n) const |
| { return get(n); } |
| |
| std::vector<std::wstring> m_strings; |
| |
| virtual const wchar_t * wchar_out() { return L"ciao"; } |
| |
| virtual void process_text(const wchar_t *text) {} |
| virtual void process_wstring_text(std::wstring text) {} |
| virtual void process_wstring_ref_text(const std::wstring& text) {} |
| |
| virtual std::wstring multiple_params_val(const std::wstring& p1, const std::wstring& p2, std::wstring p3, std::wstring p4) const |
| { return get_first(); } |
| |
| virtual const std::wstring& multiple_params_ref(const std::wstring& p1, const std::wstring& p2, std::wstring p3, std::wstring p4) const |
| { return get_first(); } |
| |
| void call_process_func() { process_text(L"hello"); } |
| void call_process_wstring_func() { process_wstring_text(L"hello"); } |
| void call_process_wstring_ref_func() { process_wstring_ref_text(L"hello"); } |
| }; |
| |
| %} |
| |
| %template(StringVector) std::vector<std::wstring>; |
| |
| #endif |