
上一篇提到muduo库依赖boost,但并没有进行详细说明.实际上,在进行关于线程的重构过程中就已经涉及到了对boost依赖的改进.
函数与函数式编程
关于函数式编程,各类博客各个论坛都有不同的意见,这里不多展开,只对一等函数做一点说明.
在函数式语言中,函数是一等公民,而在C/C++中不是,早期的c语言中大多使用函数指针来传递函数参数.C++中的函数对象类是指一个重载了operator()的类,类似
|
|
这样以来我们就可以用对象来保存函数,进而扩展一些类型安全的类似函数式的写法.
boost库提供了boost::function和boost::bind,而C++11提供了std::function,std::bind和std::ref,可以方便的代替boost而不需自己封装.
不可复制的对象
一个类可以通过继承boost::noncopyable来使其对象不可复制,包括不可通过复制构造函数复制和不可通过operator=复制.muduo库同时也实现了一个copyable类,不过我觉得不要问题也不大.
关于重造一个noncopyable的文章也很多,这里不再介绍了
any类
boost::any提供了一个可以存放任何对象的类,而且这一项功能会在C++17中出现.实际上,C++14已经有了实验性质的std::experimental::any,所以再一次用标准库代替了boost.
本博的原创作品作品采用知识共享署名 2.5 中国大陆许可协议 进行许可,欢迎转载,但转载请注明出处,并保持转载后文章内容的完整。
本文链接:http://fallenwood.github.io/2017/01/02/cpp-11-basic-bases/




近期评论