Если вам нужно сохранить функцию-член без экземпляра класса, вы можете сделать что-то вроде этого:
class MyClass
{
public:
void MemberFunc(int value)
{
//do something
}
};
// Store member function binding
auto callable = std::mem_fn(&MyClass::MemberFunc);
// Call with late supplied 'this'
MyClass myInst;
callable(&myInst, 123);
. Каким будет тип хранилища без auto ? Что-то вроде этого:
std::_Mem_fn_wrap callable
Вы также можете передать это хранилище функций стандартным связям функций
std::function binding = std::bind(callable, &testA, std::placeholders::_1);
binding(123); // Call
Предыдущие и будущие примечания: более старый интерфейс std :: mem_func , но с тех пор он устарел. Существует предложение, post C ++ 17, чтобы сделать указателем на функции-члены, вызываемые . Это было бы очень приятно.