swig/Examples/test-suite/namespace_spaces.i
Vadim Zeitlin e8c6bfbc8f Remove completely broken handling of member function pointers
Member function pointers can't possibly be represented as function pointers,
they have a strictly bigger size and attempting to do it resulted in code
which, with a lot of bad casts, compiled, but crashed during run-time.

The proper solution is to represent C++ method pointers with an appropriate
opaque type, but for now this remains broken -- just make it explicitly broken
instead of pretending that it works when it actually has no chance to.

Let "namespace_spaces" unit test pass, as it's not really related to the
function pointers, by adding an explicit SWIGC test to it.
2016-04-21 01:37:40 +02:00

35 lines
583 B
OpenEdge ABL

%module namespace_spaces
%{
#if defined(__SUNPRO_CC)
#pragma error_messages (off, wbadasg) /* Assigning extern "C" ... */
#endif
%}
%inline %{
class Foo {
public:
Foo();
~Foo();
typedef int Integer;
int blah(int x);
int spam(int x);
Integer bar(Integer x);
#ifndef SWIGC
void (Foo:: *func_ptr) (int);
#endif
};
inline Foo :: Foo () {}
inline Foo :: ~Foo () {}
inline int Foo
::blah(int x) { return 2*x; }
inline int Foo :: spam(int x) { return -x; }
inline Foo :: Integer Foo :: bar(Foo :: Integer x) { return x; }
%}