Avoid virtual function calls with functor objects
Registered by
Václav Šmilauer
Change functors so that they don't have the virtual ::go function, but instead have _static_ (!!) member function that will receive the instance pointer as explicit first argument (to allow access to instance member data).
Pointers to static member functions are the same as pointers to non-virtual static functions and can be called without overhead. Pointers to virtual functions are special objects which still perform virtual dispatch when called.
This is to be tried and evaluated on BoundFunctors first, which are low in number and independent of the other functors.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- High
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- Václav Šmilauer
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
-
Unknown
- Milestone target:
- None
- Started by
- Completed by
- Václav Šmilauer
Related branches
Related bugs
Sprints
Whiteboard
(?)