gpt4 book ai didi

c++ - 如何比较 boost::signals2 中的 slot_type

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:18:20 24 4
gpt4 key购买 nike

如果您使用不同的函数(待调用)连接到信号,如何检查该函数是否已连接?通常我会比较函数指针的地址,但我如何访问该指针?

例子:

boost::signals2::signal<void ()> sig;

sig.connect(Callback1());
sig.connect(Callback2());

那么如何避免再次调用

sig.connect(Callback1());

?

最佳答案

您可以使用boost::signals2::connection 对象变量来存储信号与槽的连接,因此您可以这样做:

boost::signals2::connection c = sig.connect(Callback1());
// another call
if (! c.connected()){
sig.connect(Callback1());
} else {
cout << "signal with this slot is connected! << endl;
}

关于c++ - 如何比较 boost::signals2 中的 slot_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30193586/

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