// A class with a private assignment operator. // This is rare, but sometimes used with singletons and // objects that have complicated state. %module private_assign %{ #include %} %inline %{ class Foo { private: Foo &operator=(const Foo &f) { return *this; } public: Foo() { } Foo(const Foo &f) { } // copy ctor can still be public, however. void bar() { } }; Foo blah() { return Foo(); } class Bar : protected Foo { }; %} #pragma SWIG nowarn=SWIGWARN_IGNORE_OPERATOR_NEW // operator new %inline %{ class TROOT { protected: void *operator new(size_t l) { return malloc(sizeof(TROOT)); } int prot_meth() { return 1; } public: TROOT() { } TROOT(const char *name, const char *title, void *initfunc = 0) { } }; class A : protected TROOT { }; %} #ifdef SWIGPYTHON // This case only works in python %inline %{ struct FooBar : Foo { }; FooBar bar; %} #endif