为啥 boost::range::adaptor 中使用了这么多种 range 类型
个人没有用过这个东西,但是看Introduction第一句话“A Range Adaptor is a class that wraps an existing Range to provide a new Range with different behaviour.”基本上可以猜测是为了保证stateless并且没有运行时开销。如果用同一个类,你wrap的同时,内部需要通过某种机制保存了它应当表现的行为,比如虚函数指针或者枚举变量。然后运行的时候动态检查。如果把这个机制用模板参数来做,每种wrapper就变成了一个新的类型,于是就变成这个样子了。
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
