mirror of https://github.com/swig/swig
30 lines
526 B
OpenEdge ABL
30 lines
526 B
OpenEdge ABL
%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;
|
|
};
|
|
%}
|