中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
发布一个高效实用的C++委托库
作者:未知 时间:2005-07-27 23:18 出处:CSDN 责编:chinaitpower
              摘要:发布一个高效实用的C++委托库

高效实用C++委托库

下载地址
http://upload.programfan.com/upfile/200548160qevent.rar

一个简洁高效的C++委托库,支持普通函数,仿函数,类成员函数的委托库,以相同方式声明0-9个参数的任意委托

一 支持编译器和性能
支持VC6.0和VC7.1
性能与boost::function库相同。
利用[](...)调用单个函数委托性能稍好一些。

二 声明形式
目前支持0到9个参数
QLib::Event<void> ev0; //零个参数
QLib::Event<int,int> ev1; //一个参数
QLib::Event<void,int,int,int> ev3; //三个参数

三 构造函数
QLib::Event<int,int> ev2;
QLib::Event<int,int> ev1(&Test1);
QLib::Event<int,int> ev1((Hello()));
//VC60可直接使用ev1(Hello())的形式,VC70要求ev1((Hello()))的形式
QLib::Event<int,int> ev1(&h,&Hello::Test1);
QLib::Event<int,int> ev1(ev2);
QLib::Event<int,int> ev1(ev2[0]);

四 函数绑定
支持普通函数,仿函数,类成员函数,相同类型委托和委托中的元素
ev1.bind(&Test1);
ev1.bind(Hello());
ev1.bind(&h,&Hello::Test1);
//兼容形式
ev1 += &Test1;
ev1 += Hello();
ev1 += QLib::Event<int,int>(&h,&Hello::Test1);
//支持相同类型委托
ev1 += ev2;
ev1 += ev2[0];

五 判断绑定的函数个数
i = ev1.hasbind(&Test1);
i = ev1.hasbind(Hello());
i = ev1.hasbind(&h,&Hello::Test1);

六 函数解绑定
ev1.unbind(&Test1);
ev1.unbind(Hello());
ev1.unbind(&h,&Hello::Test1);
//兼容形式
ev1 -= &Test1;
ev1 -= Hello();
ev1 -= QLib::Event<int,int>(&h,&Hello::Test1);
//支持相同类型委托
ev1 -= ev2;
ev1 -= ev2[0];

七 判断是否相等
ev1 == ev2;
ev1 != ev2[0];
//对于单个函数的委托
ev1 == &Tes1;
ev1 == Hello();
ev1 == QLib::Event<int,int>(&h,&Hello::Test1);

八 去除重复元素
ev1.removesame();


九 辅助函数
参数个数
int i = ev1.param;
是否为空
bool b = ev1.empty();
元素个数
int size = ev1.size();
交换
ev1.swap(ev2);

十 函数调用形式
//直接调用
ev1(10);
//单个成员方式调用
for (int i = 0; i < ev1.size(); i++)
{
  ev1[i](10);
}


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有