摘要:http://blog.donews.com/jfwan/archive/2005/07/01/451082.aspx接口实现很完整,对象生存期管理也比较好,代码短小。什么时候标准C++支持委托就好了,好像C++0x中还没看到这个。从jfwan的代码里,也发现了一个我一直以来的理解错误:void返回值的函数,可以使用return void();,我从没见过这种用法,所以理所当然觉得它是非法的,直观...
阅读全文
随笔分类 - 1. c/c++
摘要:c++0x keynote中包含一个重要的typeof表达式,用以“自动获取一个类型”,当然是编译期。一、基本用法。1、typeof表达式。以下是它列出的用法:a、取表达式的值的类型:template<class A, class B>function operator*(A a, B b) -> typeof(a*b); // return type last// big ch...
阅读全文
摘要:仔细研究了一下,如果要使用ACE_TP_Reactor,则不宜对同一个ACE_Event_Handler同时注册SOCKET和其它事件,因为ACE_TP_Reactor只保证“不会有2个线程同时调用同一个Event_Handler的SOCKET事件处理器”。上次我修改了一个版本,让它能同时处理SOCKET事件和TIMER事件,不过在压力测试下还是出了问题。原因是当客户端主动断线时,peer().g...
阅读全文
摘要:看到很多地方都使用下面的方式来表示不等待:ACE_Time_Value nowait (ACE_OS::gettimeofday());peer ().send (..... &nowait);这包括马维达译的《ACE程序员指南》。上次测试了一下,证实这个用法是错误的,可以做一个简单的测试环境:写一个简单的echo服务器,服务端收到数据以后sleep几秒再写回peer,而客户端则在发送数据...
阅读全文
摘要:ACE_TP_Reactor保证同一处理器(Handle)的SOCKET事件,在同一时间不会由多个线程同时调用,但并没有保证多个线程不在同一时间分别处理同一处理器(Handle)的SOCKET和定时器,而且如果在定时器处理中超过定时器间隔,将会有另一线程再次调用定时器处理函数,带来不必要的线程同步工作。通过查看源码(TP_Reactor.cpp)可以看出,当处理一个SOCK事件时,TP_React...
阅读全文
摘要:注:里面使用了一个自己写的C++委托类Delegate,不是.net中的委托,关于这个委托详见我的C++委托类最终版。本文所写的代码是跨平台的纯C++实现。一、简要说明。这里讲的“异步调用代理组件”,简要描述如下。假如有一个耗时的方法(不论它是本地调用还是远程调用),这个调用耗时的原因是由于某些原因的阻塞,比如IO,通常可以把这个操作交给一个线程去处理,为了通用、高效,往往会实现一个领导者/追随者...
阅读全文
摘要:上次写给一个朋友看的。#include <iostream>using namespace std;struct Test{Test& operator ( ) ( ){cout << "当";return *this;}};int main(){Test () () () () () () () () () ();cout << endl;cout &...
阅读全文
摘要:看下面的输出就知道,其实就是定义了一个Delegate<void(int,int)>:1>c:\documents and settings\administrator\my documents\visual studio 2005\projects\delegate\delegate\call.h(74) : error C2752: 'Delegate<T>' :...
阅读全文
摘要:这项技术最常用的是字符串类,如下:string s1 ("long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long l...
阅读全文
摘要:http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/builddistapp/ArchitecturalOptionsforAsynchronousWorkflow.mspx
阅读全文
摘要:最多支持26个参数的C++委托类,还想多可以改脚本。。
阅读全文
摘要:委托的重要性就不用再介绍了吧?C++标准没有实现委托,VC中实现的委托需要CLR支持,所以没有真正意义上的C++委托。
阅读全文
摘要:乱七八糟,有空再整理。 1、暂命名为Functor,因为没考虑返回值的情况,这在多分派委托处理中,算是个麻烦事,以后类名可能改为Delegate。 2、根据i_like_cpp翻译的技术文章《成员函数指针与高性能的C++委托》提供的思路做成的,不过原文所提到的FastDelegate实现太复杂,所以自己做了一个,可能不完善,不过初步测试基本功能达到了,而且实现要简单一些。 3、原本vector...
阅读全文
摘要:今天浅浅地测试了一下vector迭代器,感觉效率太低,居然比下标访问慢了十几倍,不可忍受。
阅读全文

浙公网安备 33010602011771号