blob: e78364c25eefd81149bf2a78e5046aa5dd9ef4db [file] [log] [blame]
%module smart_pointer_namespace2
%{
namespace one
{
template <typename T>
class Ptr
{
T* p;
public:
Ptr(T *tp) : p(tp) {}
~Ptr() { };
T* operator->() { return p; }
};
}
namespace one
{
class Obj1
{
public:
Obj1() {}
void donothing() {}
};
typedef one::Ptr<Obj1> Obj1_ptr;
}
namespace two
{
class Obj2
{
public:
Obj2() {}
void donothing() {}
};
typedef one::Ptr<Obj2> Obj2_ptr;
}
%}
namespace one
{
template <typename T>
class Ptr
{
T* p;
public:
Ptr(T *tp) : p(tp) {}
~Ptr() { };
T* operator->() { return p; }
};
}
namespace one
{
class Obj1
{
public:
Obj1() {}
void donothing() {}
};
typedef one::Ptr<Obj1> Obj1_ptr;
%template(Obj1_ptr) one::Ptr<Obj1>;
}
namespace two
{
class Obj2
{
public:
Obj2() {}
void donothing() {}
};
typedef one::Ptr<Obj2> Obj2_ptr;
}
using two::Obj2;
%template(Obj2_ptr) one::Ptr<Obj2>;