目录
前言
在《std::function从实践到原理》中我们分析了std::function的实现原理,但这只是纸上谈兵。要想理解为什么这么实现,最好的办法还是想想要是自己手写一个要怎么实现。本文不想直接呈现最终版本,因为那样读者看不到某段代码是为了什么才那么写。我会搭建好几版,争取把所想所思都体现出来。
第一版
我们先不考虑复制构造函数,也不考虑移动构造函数,只考虑最普通的构造函数, 一共两种类型(functor type)可以赋值给Myfunction: lambda表达式、函数指针。仿函数与lambda异曲同工,略。这两种类型要么通过类模板参数要么通过构造函数的模板参数传进来,分别形如:
template<typename _Res, typename... _ArgTypes, typename _Functor>
class Myfunction
//构造函数
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



