在学习Boost库中的函数包装器教程(链接在此)时,我看到了以下代码:
1 boost::function<float (int x, int y)> f;
2
3 struct int_div {
4 float operator() (int x, int y) const { return ((float)x)/y; }
5 };
6
7
8 int main()
9 {
10 f = int_div();
11 cout << f(5, 3) << endl;
12 return 0;
13 }
我试图理解在结构体内定义函数(operator()
),然后使用()
将结构体赋值给函数封装器f
的操作(见第3到5行和第10行),请问有人能帮我理解这些概念吗?
boost::function
持有一个可调用的对象,你可以给它一个类的实例,然后你就可以“调用”它。 - chris