diff options
author | Olly Betts <olly@survex.com> | 2023-05-08 15:56:37 +1200 |
---|---|---|
committer | Olly Betts <olly@survex.com> | 2023-05-08 15:56:37 +1200 |
commit | 6085a9661edd6bbfbe0dbffd187afda8be8aefd0 (patch) | |
tree | 747308c4a6a0008fe1ba2b5ab7b74b425b063f73 /Examples/test-suite/director_string_view.i | |
parent | 0fa2ab8945ff40e770045dd86ed0380c006643fc (diff) | |
download | swig-6085a9661edd6bbfbe0dbffd187afda8be8aefd0.tar.gz |
Initial support for std::string_view
So far C#, Java, Lua and PHP are supported.
Closes: #2540
See #1567
Diffstat (limited to 'Examples/test-suite/director_string_view.i')
-rw-r--r-- | Examples/test-suite/director_string_view.i | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Examples/test-suite/director_string_view.i b/Examples/test-suite/director_string_view.i new file mode 100644 index 000000000..19c2dbf01 --- /dev/null +++ b/Examples/test-suite/director_string_view.i @@ -0,0 +1,56 @@ +%module(directors="1") director_string_view; + +#if defined SWIGCSHARP || defined SWIGJAVA || defined SWIGLUA || defined SWIGPHP + +%include std_string.i +%include std_string_view.i + +// Using thread unsafe wrapping +%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) A; + +%{ +#include <vector> +#include <string> +#include <string_view> +%} + +%feature("director") A; +%inline %{ + +struct A +{ + A(const std::string& first) + : m_strings(1, first) + {} + + virtual ~A() {} + + virtual std::string_view get_first() const + { return get(0); } + + virtual std::string_view get(int n) const + { return m_strings[n]; } + + virtual std::string_view call_get_first() const + { return get_first(); } + + virtual std::string_view call_get(int n) const + { return get(n); } + + virtual int string_length(std::string_view s) const + { return (int)s.size(); } + + + virtual void process_text(const char *text) + { + } + + void call_process_func() { process_text("hello"); } + +private: + std::vector<std::string> m_strings; +}; + +%} + +#endif |