sigslot,一个开源的c++signal slot库

sigslot is a head only signal slot lib,written by Sarah Thompson.

原始仓库是 http://sourceforge.net/projects/sigslot/

文档是 http://sigslot.sourceforge.net/sigslot.pdf

a Patched version of Sarah Thompson‘s sigslot implementation. Works with VS 2013 on Windows 7 using C++11.

https://github.com/arvidsson/sigslot

使用方式很简单,include头文件siglslot.h, 所有类在sigslot namespace中。

#include <iostream>
#include "sigslot.h"
using namespace std;
using namespace sigslot;

class window
{
public:
    signal0<> _lclicksig;
    signal1<int> _paintsig;
};

class foo : public has_slots<>
{
public:
    void lbuttondown()
    {
        cout<<"left button clicked"<<endl;
    }
    void paint(int i)
    {
        cout<<"i = "<<i<<endl;
    }
};

int main()
{
    window w;
    foo f;
    w._lclicksig.connect(&f, &foo::lbuttondown);
    w._paintsig.connect(&f, &foo::paint);
    w._lclicksig();
    w._paintsig(100);

    return 0;
}

sigslot,一个开源的c++signal slot库,布布扣,bubuko.com

时间: 2024-10-12 08:24:24

sigslot,一个开源的c++signal slot库的相关文章

FunDA:一个开源的函数式数据处理工具库,也是Slick的补充

如果你是一个Slick用户,或者你是一个数据库编程人员正在尝试进入函数式编程模式,那么FunDA可能会帮到你. 目前市面上FRM(Functional Relational Mapper),即函数式的数据库处理工具库的选择并不多,Typesafe公司的Slick可能是最通用的选择了.整体上来说:Slick还是一个不错的函数式数据库编程工具,用scala语言,很多地方引用了函数式的抽象模式和对象(functional abstractions and objects).但是,FRM是一种偏重数据读

介绍一个开源的SIP(VOIP)协议库PJSIP

本文系转载,出处不可考. 如果你对SIP/VoIP技术感兴趣,哪希望你不要错过:),如果你对写出堪称优美的Code感兴趣 ,那么你也不可错过:) 这期间我想分析一下一个实际的协议栈的设计到实现的相关技术,算是自己的一个学习经 历记录. 最初选择这个库做分析的原因很简单,文档齐全:),其它良好的特征则是慢慢发现的:) www.pjsip.org 1. PJSIP简介 PJSIP的实现是为了能在嵌入式设备上高效实现SIP/VOIP.其主要特征包括: 1).极具移植性.(Extremely porta

SharpZipLib 是一个开源的 .NET 压缩库

SharpZipLib 是一个开源的 .NET 压缩库,支持 zip 以及存储和 deflate 压缩模式,支持一下 .NET 版本: .NET 1.1 .NET 2.0 .NET 3.5 .NET 4.0 .NET Compact Framework 1.0 .NET Compact Framework 2.0 You can download the Assemblies?here

开源 Android App 增量更新库 版本升级

开源 Android App 增量更新库 版本升级 经过几天的重构,我将之前写的一个Android 应用增量更新的示例程序重构为了一个开源库,现在已经push 到 GitHub 上,欢迎大家Watch.Star.Fork. 包含以下内容: 服务器端生成差异包的工程:AppUpdate 客户端使用的开源apk合并库:ApkPatchLibrary 引用ApkPatchLibrary,实现增量更新的ApkPatchLibraryDemo 旧版本的微博Android客户端,以及服务端生成的新旧微博差分

开源的人工神经网络计算库 FANN 学习笔记 1

开源的人工神经网络计算库 FANN 学习笔记 1 这年头机器学习非常的火,神经网络算是机器学习算法中的比较重要的一种.这段时间我也花了些功夫,学了点皮毛,顺便做点学习笔记. 介绍人工神经网络的基本理论的教科书很多.我正在看的是蒋宗礼教授写的<人工神经网络导论>,之所以选这本书,主要是这本比较薄,太厚的书实在是啃不动.这本书写的也比较浅显,用来入门正合适. 看书的同时也在网上找了找人工神经网络的库代码.感觉 FANN 这个库还不错,就顺道学了学这个库的使用方法. FANN 是个开源的 C 语言实

Android开源项目第二篇——工具库篇

本文为那些不错的Android开源项目第二篇——开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. Android开源项目系列汇总已完成,包括: Android开源项目第一篇——个性化控件(View)篇 Android开源项目第二篇——工具库篇 Android开源项目第三篇——优秀项目篇 Android开源项目第四篇——开发及测试工具篇 Android开源项目第五篇——优秀个人和

详解 Qt 线程间共享数据(使用signal/slot传递数据,线程间传递信号会立刻返回,但也可通过connect改变)

使用共享内存.即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的. Qt 线程间共享数据是本文介绍的内容,多的不说,先来啃内容.Qt线程间共享数据主要有两种方式: 使用共享内存.即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的: 使用singal/slot机制,把数据从一个线程传递到另外一个线程. 第一种办法在各个编程语言都使用普遍,而第二种方式倒是QT的特有方式,下面主要学习一

值得推荐的开源C/C++框架和库

值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力.Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行. 下载链接:http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Ht

QT高级编程技巧(一)-- 编写高效的signal &amp; slot通信代码

关于QT的线程通信,我们都会想到signal & slot机制.先回顾下利用signal & slot机制实现控件消息处理的方法. 控件消息处理 假设我们的主界面上有一个使用ui->btn指向的QPushButton对象,要实现该对象的clicked消息处理,可以在主界面对象MainWindow上添加一个slot方法onBtnClicked,并在其构造函数中使用connect方法与ui->btn的clicked消息进行绑定,如下: MainWindow::MainWindow(