Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Render(void(*Call)())
- {
- D3dDevice->BeginScene();
- Call();
- D3dDevice->EndScene();
- D3dDevice->Present(0,0,0,0);
- }
- Render(MainMenuRender);
- Render(MainMenu::Render);
- Render(MainMenu->Render);
- #include <boost/bind.hpp>
- #include <boost/function.hpp>
- void Render(boost::function0<void> Call)
- {
- // as before...
- }
- Render(boost::bind(&MainMenu::Render, myMainMenuInstance));
- void Wrap(T *t)
- {
- t->Call();
- }
- void Render(void (*f)(T *), T *t)
- {
- ...
- f(t);
- ...
- }
- void CallRender(myclass *Instance)
- {
- Instance->Render();
- }
- void Render(void (*Call)(myclass*), myclass* Instance)
- {
- ...
- Call(Instance);
- ...
- }
- Render(CallRender, &MainMenu);
- ((object).*(ptrToMember))
- void Render(IRenderer *Renderer)
- {
- D3dDevice->BeginScene();
- Renderer->Render();
- D3dDevice->EndScene();
- D3dDevice->Present(0,0,0,0);
- }
- // The "interface"
- public class IRenderer
- {
- public:
- virtual void Render();
- };
- public class StaticCaller: public IRenderer
- {
- void (*Call)();
- public:
- StaticCaller((*Call)())
- {
- this->Call = Call;
- }
- void Render()
- {
- Call();
- }
- };
- typedef void (T::*FUNCTIONPOINTERTYPE)(args..)
- FUNCTIONPOINTERTYPE function;
- T* t;
- FUNCTIONPOINTERTYPE function;
- (t->*function)(args..);
Add Comment
Please, Sign In to add comment