如何在boost :: signal2中比较slot_type
Howto compare slot_type in boost::signal2
如果使用不同的funktions连接到信号(待命),如何检查函数是否已经连接?通常我会比较函数指针的地址,但是我该如何访问该指针?
示例:
boost::signals2::signal<void ()> sig;
sig.connect(Callback1());
sig.connect(Callback2());
因此,how to避免了另一个电话
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;
}
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么比较运算符如此快速
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 比较字符数组
- 将模板化的类型与C++中的某些类/类型进行比较
- C++自定义比较函数
- 如何比较自定义类的std::变体
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- std::设置自定义比较器
- 布尔比较运算符是如何在C++中工作的
- C++将目录中的所有文件与::filesystem进行比较
- shell排序中的交换和比较
- 如何在C++中比较两个char数组
- catch框架有没有办法比较流或文件
- 从文件中读取多个字节,并将它们存储在C++中进行比较
- 智能指针作为无序映射键,并通过引用进行比较
- 比较if语句中的数组值和int值
- 对于循环变体比较
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 比较两个大小不等的映射c++