Avoid virtual function calls with functor objects

Registered by Václav Šmilauer on 2010-03-04

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
Completed by
Václav Šmilauer on 2010-12-12

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.