Swig: No Constructor defined
- by wheaties
I added %allowexcept to my *.i file when building a Python <-- C++ bridge using Swig. Then I removed that preprocessing directive. Now I can't get the Python produced code to recognize the constructor of a C++ class. Here's the class file:
#include <exception>
class Swig_Foo{
public:
Swig_Foo(){}
virtual ~Swig_Foo(){}
virtual getInt() =0;
virtual throwException() { throw std::exception(); }
};
And here's the code Swig produces from it:
class Swig_Foo:
__swig_setmethods__ = {}
__setattr__ = lambda self, name, value: _swig_setattr(self, Swig_Foo, name, value)
__swig_getmethods__ = {}
__getattr__ = lambda self, name: _swig_getattr(self, Swig_Foo, name)
def __init__(self): raise AttributeError, "No constructor defined"
__repr__ = _swig_repr
__swig_destroy__ = _foo.delete_Swig_Foo
__del__ = lambda self : None;
def getInt(*args): return apply(_foo.Swig_Foo_getInt, args)
def throwOut(*args): return apply(_foo.Swig_Foo_throwOut, args)
Swig_Foo_swigregister = _foo.Swig_Foo_swigregister
Swig_Foo_swigregister(Swig_Foo)
The problem is the def __init__self): raise AttributeError, "No constructor defined" portion. It never did this before I added the %allowexception and now that I've removed it, I can't get it to create a real constructor. All the other classes have actual constructors. Quite baffled.
Anyone know how I can get it to stop doing this?