代码改变世界

随笔分类 - C++

C++中多线程与Singleton的那些事儿

2015-01-31 23:06 by origins, 5264 阅读, 收藏, 编辑
摘要:前言前段时间在网上看到了个的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton。看到这个题目后,第一个想法就是用Scott Meyer在《Effective C++》中提到的,在static成员函数中构造local static变量的方法来实现,但是经过一... 阅读全文

浅谈指针的比较

2015-01-24 23:19 by origins, 4056 阅读, 收藏, 编辑
摘要:前言有人说指针是C语言的灵魂,也有人说没学好指针就等于不会C语言。虽然在现代C++中一般都是推荐尽量避免使用原生的raw指针,而是以smart pointer 和reference替代之。但是无论怎样,对于C/C++来说,指针始终是个绕不过去的坎。究其原因,是因为C/C++都是支持面向底层操作的语言... 阅读全文

boost::bind的简单实现

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

boost::function的简单实现

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

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

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