摘要: 这个比较有意思,# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x 连接在一起以后,然后定义为x+1 实现了inc功能,不过最多也就到255 阅读全文
posted @ 2016-05-05 00:25 寻不可道之道 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 提供了对引用计数对象的管理,其实也就是操作引用计数对象,当引用计数为零的时候将对象销毁,值得学习的是juce是如果将引用计数对象和它的智能指针结合在一起的,这个后面再加分析 值得注意的是对象转移的时候,同样是增加新对象的引用计数,减去原有对象的引用计数 阅读全文
posted @ 2016-05-04 09:35 寻不可道之道 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 这个类提供了最基本的引用计数管理,界面库中,经常都需要消息发送,而带来的后果就是不知道消息中包含的对象是否还存在,如果不能很好管理的话就容易出现访问销毁了的对象这样的情况,所以,juce的界面无素也基于引用计数是个不错的选择 阅读全文
posted @ 2016-05-04 09:31 寻不可道之道 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 这个类作为所有消息的基类,主要是包装了回调函数 virtual void messageCallback() = 0; 阅读全文
posted @ 2016-05-04 09:26 寻不可道之道 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 先看成员_tracked_objects,从字面上讲是被跟踪的对象,再看,相关函数 bool expired() const,这个函数是检查_tracked_objects是否已经expired.只不过是使用一些设计模式上的东西,理解也比较好理解, 详细源码如下 阅读全文
posted @ 2016-05-04 07:01 寻不可道之道 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 挺简单的一个类,只是维护了一个成员 shared_ptr<detail::trackable_pointee> _tracked_ptr; 这样看来的话,所谓的track还是基于智能指针,这里注意,track的对象需要从trackable_pointee继承,一个空类,主要还是为了用于标识。 阅读全文
posted @ 2016-05-03 23:08 寻不可道之道 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 一直觉得boost的时间库不是很好用,当然,也有可能是我没有深入理解,所以,把代码弄出来看看或许要好些,时间处理中,取当前时间真的是太常见,而boost中各种clock又区分不清楚,然而,代码能说明一切,从下面代码可以看出,steadyclock和systemclock根本就代表不同的计数. Que 阅读全文
posted @ 2016-05-03 09:52 寻不可道之道 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: base库中比较有意思就是这个类了,如同很多界面库一样,创建了一个隐藏窗口来处理需要在界面线程处理的消息,大体原理也就是需要执行task的时候发送一个自定义的消息,当窗口接收到task的时候调用保存起来的回调函数,还有的是通过把回调放在消息结构体里面 自下义的消息 值得注意的是,别自己定义个消息和这 阅读全文
posted @ 2016-05-03 07:56 寻不可道之道 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 如同名称描述的那样,这个类就是个taskqueue,也就是任务队列,添加任务到队列,然后由MessageLoop去执行task,比较关心的函数如下: 将closeure封装到了 PendingTask 这个里边值得注意的是 from_here 这个其实就是个位置信息,记录了当前代码所在文件,代码所在 阅读全文
posted @ 2016-05-03 00:42 寻不可道之道 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 这个类说白了就是对windows event的封装,没有什么特别的,常规做法,等侍另一线程无非就是等侍事件置信waitsingleobject,通知事件无非就是setevent,一看就明白,不就详解,写在这里只是为了这个系更的完整性 下边的示例代码注意下: SendToOtherThread(e); 阅读全文
posted @ 2016-05-02 21:51 寻不可道之道 阅读(887) 评论(0) 推荐(0) 编辑