#include <iostream>
using namespace std;
class A
{
public:
	A() { }
	~A() noexcept(false) { throw exception(); }
	void* operator new  ( std::size_t count )
	{
		cout << "hi" << endl;
		return ::operator new(count);
	}
	void operator delete  ( void* ptr)
	{
		cout << "bye" << endl;
		return ::operator delete(ptr);
	}
};

int main() {
	A* a = new A();
	try
	{
		delete a;
	}
	catch(...)
	{
		cout << "eek" << endl;
	}
	return 0;
}