代码改变世界

boost::bind的简单实现

2014-12-18 16:59 by origins, 1556 阅读, 6 推荐, 收藏, 编辑
摘要:前言在上一篇blog中简单的实现了boost::function,支持带有2个参数的函数/函数指针,函数对象,函数适配器/bind类,以及带有1个参数的成员函数指针。本文接着来介绍如何实现一个简单的boost::bind。基本目标如下:支持接收0个参数的函数/函数指针,函数对象。支持接收1个参数的函... 阅读全文

boost::function的简单实现

2014-12-17 20:35 by origins, 3667 阅读, 5 推荐, 收藏, 编辑
摘要:前言boost::function和boost:bind是一对强大的利器。相信用过的童鞋多少有些体会。虽然平时在用boost::function,但是用的时候心中总会一些不安,因为不知道它是怎么实现的。于是,就自己琢磨着简单的实现一下,搞明白基本的原理。对于这个简单实现,有以下几个目标:选取比较常见... 阅读全文

聊聊C++模板函数与非模板函数的重载

2014-12-02 20:22 by origins, 3929 阅读, 6 推荐, 收藏, 编辑
摘要:前言函数重载在C++中是一个很重要的特性。之所以有了它才有了操作符重载、iostream、函数子、函数适配器、智能指针等非常有用的东西。平常在实际的应用中多半要么是模板函数与模板函数重载,或者是非模板函数与非模板重载。而让模板函数与非模板函数重载的情况却很少。前段时间在项目中偶然遇到了一个模板函数与... 阅读全文

解析gtest框架运行机制

2014-12-01 21:59 by origins, 9032 阅读, 5 推荐, 收藏, 编辑
摘要:前言Google test是一款开源的白盒单元测试框架,据说目前在Google内部已在几千个项目中应用了基于该框架的白盒测试。最近的工作是在搞一个基于gtest框架搭建的自动化白盒测试项目,该项目上线也有一段时间了,目前来说效果还是挺不错的。侯捷先生在《STL源码剖析》中说过一句话:”会用STL,是... 阅读全文

红黑树插入和删除的情况分析

2014-11-03 18:57 by origins, 2374 阅读, 3 推荐, 收藏, 编辑
摘要:前言红黑树是特殊二叉查找树的一种,一棵红黑树有以下5种性质:根节点为黑色。每个节点不是黑色就是红色。每个红色节点的两个儿子一定是黑色。所有的叶子节点都是黑色。(注:这里的叶子节点并不是真正意义上的叶子节点,而是一种只有颜色属性但不存放数据的节点,而且其没有儿子节点)一个红黑树的中任取一个节点,从它所... 阅读全文