C++引入变参模板就是用来解决“任意个数的参数的匹配推导”、“任意函数的匹配推导”之类问题的。
这个特性不是一开始就有的,而是后来发现没有这个东西,有一部分问题就不好抽象、描述,要用hack/猥琐的方法去实现。跟C/C++一开始没有__VA_ARGS__宏,导致写个支持任意参数的日志函数都要hack,是一样的。
而线程池的任务队列,正好就是它的使用场景之一:可以在编译期检查放到队列里的任意函数的signature。
从这个角度来说,楼主那个代码就是:C++的变参模板这个特性是用在最合适的场合,而且起到了预期的作用。
这就叫“恰如其分”,而不是“炫技”。
至于是否“晦涩”,完全看说这话的人的知识基础。
没学过对应预备知识的人,比如我,光看黎曼猜想的文字表述都觉得“晦涩”,更别提进一步的了。
【 在 ForSolitude 的大作中提到: 】
: 工具发明出来,是为了在必需的时候用,而不是说能用尽量用。
: 比如人类发明了枪,但是枪的使用是被严格限制的。你不服气,说不应该限制,因为去公园玩,常常看到有人带着狗,我怕狗,我要是身上有把枪就不怕了。别人反驳你说,你怕狗也不一定要配枪啊,棍子、刀子、或者远离狗都行。你说不行,那些都不如枪好使。
: 如果限定场景:你和狗对抗,手持什么武器,你会最舒服?毫无疑问,枪最好。
: ...................
--
FROM 111.199.144.*