blob: 3245c9cc764dff0d7645a655cf6cd227539908c8 [file] [log] [blame]
%module using_member_scopes
// Fully qualifying parameter types in a method declared after the using declaration caused
// a method being incorrectly added by the using declaration even though the declaration already existed
%inline %{
namespace OgreBites
{
struct NativeWindowType {};
class ApplicationContextBase {
public:
virtual ~ApplicationContextBase() {}
virtual void setWindowGrab(NativeWindowType* win, bool grab = true) {}
void setWindowGrab(bool grab = true) {}
};
class ApplicationContextSDL : public ApplicationContextBase {
public:
using ApplicationContextBase::setWindowGrab;
void setWindowGrab(NativeWindowType* win, bool grab = true) {} // This should not be added again as it exists in base class
};
/*
typedef not working yet
class ApplicationContextSDL2 : public ApplicationContextBase {
public:
using ApplicationContextBase::setWindowGrab;
typedef NativeWindowType* pNWT;
void setWindowGrab(pNWT win, bool grab) {} // This should not be added again as it exists in base class
};
*/
}
%}
%inline %{
// Test using declaration in various positions before and after overloaded methods
// Testing where the derived class overrides all the base class methods (and more)
namespace Bites
{
struct Base
{
virtual ~Base() {}
virtual void grab() {}
virtual void grab(int i) {}
};
struct Derived1 : public Base
{
using Base::grab;
virtual void grab() {}
virtual void grab(int i) {}
};
struct Derived2 : public Base
{
using Base::grab;
virtual void grab() {}
virtual void grab(int i) {}
virtual void grab(int i, double d) {}
};
struct Derived3 : public Base
{
virtual void grab() {}
using Base::grab;
virtual void grab(int i) {}
};
struct Derived4 : public Base
{
virtual void grab() {}
using Base::grab;
virtual void grab(int i) {}
virtual void grab(int i, double d) {}
};
struct Derived5 : public Base
{
virtual void grab() {}
virtual void grab(int i) {}
using Base::grab;
};
struct Derived6 : public Base
{
virtual void grab() {}
virtual void grab(int i) {}
virtual void grab(int i, double d) {}
using Base::grab;
};
}
%}