%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; | |
}; | |
%} |