The compiler calls setWindowGrab(bool) instead of setWindowsGrab(NativeWindowType*) and gives a warning with Visual C++ when calling setWindowGrab(true) with a pointer to ApplicationContextSDL. Looks like function function hiding of the non-virtual method. I can't see this changing testing of the original bug.
31 lines
1.1 KiB
OpenEdge ABL
31 lines
1.1 KiB
OpenEdge ABL
%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
|
|
};
|
|
*/
|
|
}
|
|
%}
|