dwww Home | Show directory contents | Find package

%module iadd

%include attribute.i
class Foo; 
%attribute_ref(test::Foo, test::A& , AsA);
%attribute_ref(test::Foo, long, AsLong);


%inline %{
struct B {
        int x;
        B(const int x) : x(x) {}
        
        B& get_me() 
        {
                return *this;
        }
  
        B& operator+=(const B& a) {
                x += a.x;
                return *this;
        }
};



namespace test { 

struct A {
        int x;
        A(const int x) : x(x) {}
        
        A& get_me() 
        {
                return *this;
        }
  
        A operator+=(const A& a) {
                x += a.x;
                return *this;
        }
};


class Foo {
public: 
        Foo(): _a(new A(5)), _n(new long) {}
        ~Foo() { delete _a; delete _n; _a = NULL; _n = NULL; }

        A & AsA() const { return *_a; }
        long& AsLong() const { return *_n; }
private: 
        A *_a;
        long *_n;
};
}

%}

Generated by dwww version 1.15 on Tue Jul 2 00:38:07 CEST 2024.