| %module operator_pointer_ref | |
| %{ | |
| #if defined(_MSC_VER) | |
| #pragma warning(disable: 4996) // 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details. | |
| #endif | |
| #include <string.h> | |
| #include <stdlib.h> | |
| %} | |
| %rename(AsCharStarRef) operator char*&; | |
| %inline %{ | |
| class MyClass { | |
| public: | |
| MyClass (const char *s_ = "") | |
| : s(strdup(s_ ? s_ : "")) | |
| { } | |
| ~MyClass () | |
| { free(s); } | |
| operator char*&() | |
| { return s; } | |
| private: | |
| char *s; | |
| }; | |
| %} |