Một đối tượng thuộc loại std::function
giữ một đối tượng có thể gọi có thể gọi. Một con trỏ đến hàm thành viên là một loại đối tượng có thể gọi được; nó có thể được gọi với một đối số của loại lớp thích hợp, cộng với bất kỳ đối số bổ sung nào mà nó cần. Ví dụ:
struct S {
void f(int);
};
std::function<void(S, int)> g(&S::f);
Để gọi nó, vượt qua một đối tượng kiểu S
:
S s;
g(s, 3);
Lưu ý rằng đối tượng std::function
không không giữ một đối tượng S
; chỉ khi bạn gọi nó là con trỏ hàm bị ràng buộc với một đối tượng.
Nguồn
2013-04-01 17:05:23
Bạn có xem qua không, ví dụ: http://en.cppreference.com/w/cpp/utility/functional/function? –
@OliCharlesworth. Tất nhiên là tôi đã làm. Cho tôi biết nếu tôi bị mù với câu trả lời. – danijar
Tôi khá chắc chắn rằng loại thông tin này là cố ý không được tiếp xúc trong thư viện, và do đó không thể tiếp cận một cách di động. –