dot*_*222 11 c++ delegates c++11
C++ 11是否提供代理?
如果没有,在C++中做类似事情的最佳(最有效)方法是什么?Boost.Signals?FastDelegate?别的什么?
Jam*_*lis 14
您可以使用bind将成员函数绑定到类实例来获得类似委托的语义:
#include <functional>
struct C
{
void Foo(int) { }
};
void Bar(std::function<void(int)> func)
{
func(42); // calls obj.Foo(42)
}
int main()
{
using namespace std::placeholders;
C obj;
Bar(std::bind(&C::Foo, obj, _1));
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,Bar()获取具有单个int参数且返回的任何内容void.
在main(),我们将指向成员函数的指针绑定到named C::Foo的实例.这为我们提供了一个可以使用单个参数调用并返回的对象. Cobjintvoid
我们Bar()使用此对象Bar()调用并进行调用obj.Foo(42).
| 归档时间: |
|
| 查看次数: |
5648 次 |
| 最近记录: |