1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
%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;
};
%}
|