swig/Examples/test-suite/operator_pointer_ref.i
Seth R Johnson feeb2516ae "Include what you use" for tests
Many of these tests implicitly required the target language library files to include the headers upstream.
2019-01-06 08:32:34 -05:00

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