#include "shutdown_helper.h" class ShutdownHelperWin : public ShutdownHelper { public: ShutdownHelperWin() {} protected: virtual void run() { MSG msg; while (GetMessage(&msg, nullptr, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } virtual void quit() { PostMessage(nullptr, WM_QUIT, 0, 0); } }; std::unique_ptr& ShutdownHelper::getSingleton() { static std::unique_ptr instance(new ShutdownHelperWin()); return instance; }