Take the 2-minute tour ×  In C++, it's possible to get a pointer
to a (non-static) member function of a class, and then later
invoke it on an object. If the function was virtual, the call is
dispatched dynamically depending on the dynamic type of the
object. It's also possible (not using a member pointer) to call
virtual member functions of objects monomorphically, by
explicitly providing the scope containing the version to use.
The following code demonstrates this:  #include <iostream> using
std::cout; using std::endl;  struct Foo     virtual void foo() {
cout << 1 << endl; }  struct Foo2: public Foo     virtual void
foo() { cout << 2 << endl; }  int main( int, char** )     Foo
*foo = new Foo2;      void (Foo::*foo_pointer)() = &Foo::foo;
foo->foo();            // prints 2     foo->Foo::foo();       //
prints 1     (foo->*foo_pointer)(); // prints 2  What I would
like to do is combine the two, and get a pointer to the
monomorphic version of a member function; i.e., I want a pointer
to Foo::foo which alw