template class GenericScene { public: virtual void on_enter(TApp* app, bool need_restore) = 0; virtual bool on_event(TApp* app, typename TApp::Event* event) = 0; virtual void on_exit(TApp* app) = 0; virtual ~GenericScene(){}; private: };