Как получить этот указатель из std :: function?

поскольку std::function может содержать функции-члены, поэтому он должен где-то хранить указатель на экземпляр объекта.

Как я могу получить this указатель от std::function что содержит функцию-член?

5

Решение

Объект типа std::function держит вызываемый объект. Указатель на функцию-член является своего рода вызываемым объектом; он может быть вызван с аргументом соответствующего типа класса плюс любые дополнительные аргументы, которые ему нужны. Например:

struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);

Чтобы вызвать его, передайте объект типа S:

S s;
g(s, 3);

Обратите внимание, что std::function объект делает не держать S объект; только когда вы вызываете его, указатель функции связывается с объектом.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]