用lambda表达式传递 整个函数体 给 一个template 形参,以达到代码的完全自由
https://fishc.com.cn/thread-197871-1-1.html 可以看出 F1,F2,F3在申明为template(仅仅是一种形式 const F& f)之后 , 他们的实际函数可以是任何形式 ,从而达到绝对自由的设计实际上可以把函数设计为‘接受 event,返回processing函数’的事件响应机制, F1,F2,F3作为响应函数
F1 = int f1(int)
F2 = int f2(void)
F3 = void f3(void)
这就是我想表达的‘自由’的含义。具体且不同的实现函数 ,都具有相同的接口(很美妙) 。本质上是由 template 和 lambda 携手完成, 非常值得记住
顺便讲了一下 “无捕获”, “值捕获”和“引用捕获”的概念
*附上了我的测试代码,看这个必看test code更好, 后者有很多的template ,vector ,etc..
页:
[1]