gpt4 book ai didi

C++ 函数包装器 (boost)

转载 作者:行者123 更新时间:2023-11-30 04:07:29 25 4
gpt4 key购买 nike

我阅读了 boost::function 函数包装器,以及教程部分 (http://www.boost.org/doc/libs/1_55_0/doc/html/function/tutorial.html) 中引用的示例。我试图了解函数包装器的用例,而不是仅仅使用函数指针。我不一定在寻找代码示例,但在更多情况下,函数包装器比函数指针更适合使用。

谢谢,艾哈迈德。

最佳答案

函数包装器包装任何可调用实体,这包括函数指针以及函数对象和 lambda 函数。

函数对象可以是重载operator() 的任何类。函数对象也是 boost::bindstd::bind 等调用的结果。

函数包装器的使用将允许使用任何类型的可调用对象,而不仅仅是函数指针。

函数对象主要用于将值绑定(bind)到对象,例如维护一个内部计数器以确定函数对象被调用了多少次(仅使用需要函数指针范围内的静态变量的函数指针来处理是棘手的),或将类实例绑定(bind)到成员函数,以便于以后调用。

通过让您的类构造函数或函数将 boost::function(或 std::function)函数包装器而不是函数指针作为参数,您允许您的类或函数的用户能够决定他们是否愿意向您传递函数指针、函数对象或 lambda,而您不必关心他们做出的选择。

关于C++ 函数包装器 (boost),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22488454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com