#include <iostream>
namespace OMR {
namespace Compiler {
class Base {
public:
Base() { std::cout << "Base default construction" << std::endl; }
~Base() { std::cout << "Base destruction" << std::endl; }
};
typedef Base BaseConnector;
}
using namespace Compiler;
}
namespace J9 {
class Extension : public OMR::BaseConnector {
public:
Extension() { std::cout << "Extension default construction" << std::endl; }
~Extension() { std::cout << "Extension destruction" << std::endl; }
};
}
int main() {
J9::Extension ext;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKbmFtZXNwYWNlIE9NUiB7CgpuYW1lc3BhY2UgQ29tcGlsZXIgewoJCmNsYXNzIEJhc2UgewpwdWJsaWM6CglCYXNlKCkgeyBzdGQ6OmNvdXQgPDwgIkJhc2UgZGVmYXVsdCBjb25zdHJ1Y3Rpb24iIDw8IHN0ZDo6ZW5kbDsgfQoJfkJhc2UoKSB7IHN0ZDo6Y291dCA8PCAiQmFzZSBkZXN0cnVjdGlvbiIgPDwgc3RkOjplbmRsOyB9Cn07CgkKdHlwZWRlZiBCYXNlIEJhc2VDb25uZWN0b3I7CgkKfQoKdXNpbmcgbmFtZXNwYWNlIENvbXBpbGVyOwoJCn0KCm5hbWVzcGFjZSBKOSB7CgpjbGFzcyBFeHRlbnNpb24gOiBwdWJsaWMgT01SOjpCYXNlQ29ubmVjdG9yIHsKcHVibGljOgoJRXh0ZW5zaW9uKCkgeyBzdGQ6OmNvdXQgPDwgIkV4dGVuc2lvbiBkZWZhdWx0IGNvbnN0cnVjdGlvbiIgPDwgc3RkOjplbmRsOyB9Cgl+RXh0ZW5zaW9uKCkgeyBzdGQ6OmNvdXQgPDwgIkV4dGVuc2lvbiBkZXN0cnVjdGlvbiIgPDwgc3RkOjplbmRsOyB9Cn07Cgp9CgppbnQgbWFpbigpIHsKCUo5OjpFeHRlbnNpb24gZXh0OwoJcmV0dXJuIDA7Cn0K