boost库

书籍:

The Boost C++ Libraries

http://blog.csdn.net/sunny2038/article/details/7509792

回调 闭包

boost 库里面最值得使用的是 bind,function,shared_ptr等,这些东西运用好会让代码非常漂亮而且不用担心内存泄漏问题 2.boost库之前的公司中项目用了boost很多东西,陈硕的muduo库中也用了boost的东西,性能问题不需要担心,而且写代码会舒服很多。

在C++中,信号与槽(Signal/Slots)才是回调的完美解决方案,其实本质上是一个观察者模式,包括其它的叫法:delegate,notifier/receiver,observer,C#中的delegate也是一个观察者的实现。

http://www.boost.org/doc/

http://www.sgi.com/tech/stl/stl_index_cat.html

http://www.chinaitlab.com/c/special/sjms/Index.html

https://www.oschina.net/question/565065_66770

http://blog.csdn.net/xie1xiao1jun/article/details/8262902

C++中实现回调机制的几种方式: Callback方式 Sink方式 Delegate方式 Signal/Slots信号槽 闭包

Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法。

Sink的本质是你按照对方要求实现一个C++接口,然后把你实现的接口设置给对方,对方需要触发事件时调用该接口.

  • RAII auto_ptr shared_ptr ptr_vector
  • 智能指针smart_ptr 标准容器不能容纳auto_ptr,这是C++标准特别规定的(读者永远也不要有这种想法)。标准容器也不能容纳scoped_ptr,因为scoped_ptr不能拷贝和赋值。标准容器可以容纳原始指针,但这就丧失了容器的许多好处,因为标准容器无法自动管理类型为指针的元素,必须编写额外的大量代码来保证指针最终被正确删除,这通常很麻烦很难实现。 存储shared_ptr的容器与存储原始指针的容器功能几乎一样,但shared_ptr为程序员做了指针的管理工作,可以任意使用shared_ptr而不用担心资源泄漏。

  • lambda 能嵌入到其他表达式当中的匿名函数(闭包)

bind function lambda any