【问题标题】:How do Boost Bind, Boost Function, Boost Signals and C++ function pointers all relate to each other?Boost Bind、Boost Function、Boost Signals 和 C++ 函数指针是如何相互关联的?
【发布时间】:2010-09-08 23:32:56
【问题描述】:

正如标题所传达的那样,我在了解 Boost Bind、Boost Function、Boost Signals 和 C++ 函数指针如何协同工作时遇到问题。

据我了解,Boost Bind 和 Boost Function 结合使用就像 Signals,而 Signals 是 Bind 和 Function 之上的抽象。

另外,与标准 C++ 函数指针相比​​,为什么 Boost Function/Bind 更可取?

希望你能在这里帮我解决一些困惑。基本上我正在尝试使用 C++ 找到最好/最简单的回调解决方案。 :)

【问题讨论】:

  • 我不熟悉函数指针的 boost 方法,但 Loki 方法给我留下了深刻的印象!

标签: c++ function boost delegates signals


【解决方案1】:

参见here 对 c 函数指针、升压函数和升压信号的不同概念的讨论。

恕我直言,这两个 boost 函数对象和 c 函数指针之间的主要区别在于添加默认参数的能力。这使得将方法(具有不可见的第一个参数的函数 -> this 指针)用作函数对象变得容易。也可以将需要参数的函数用作具有不同参数的函数对象。

Signal/Slot 是另一回事:它允许您发布客户端可以订阅的信号。该信号可以看作是一个函数指针列表。客户端可以将他们的函数指针添加到列表中。当信号被调用时,列表中的所有函数指针都会被通知/调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2016-03-16
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多