Well, &Base::foo
is a member function pointer. And there is no way to use a member function pointer that doesn't invoke a virtual override. The only syntax that avoids virtual overrides is the one where the class name, function name, and argument list are all in the same expression.
But if you have std::bind
, you likely also have lambdas, so maybe you could use:
auto baseMethod = [this](){ return Base::foo(); };
//...
baseMethod();