duration_cast是为了能在A、B之间按固定比例做任意转换,如果用A.milli_seconds()方法的办法,那需要加N种方法(如果以后扩展出天、年等单位,那还需要加方法),每种方法内部有N种模板匹配或者判断。还要考虑精度尽可能不损失。
A(时、分、秒、毫秒、微秒、纳秒),6种
B(时、分、秒、毫秒、微秒、纳秒),6种
那就不如std::duration_cast<B>(A)这一个万能接口来搞定了。
如果需要,可以在这个万能接口基础上简单封一个懒人接口to_milli_seconds()这种。
通常设计这些东西的人的抽象能力是超过普通码农的
但是如果他们搞的东西超出了自己原有的认知,或者让自己觉得不舒服,那需要想想是为什么,是不是自己该学习新东西了
这些人是人不是神,也可能有错(或者是因为要背历史的包袱),但比自己有错的概率是小的
【 在 finlab 的大作中提到: 】
: duration_cast<duration<double, milli>>(endTime - startTime).count())
: 直接加个方法:(endTime - startTime).milli_seconds() 这样不好吗?
: 又不会弄混单位,写起来也简单。
: ...................
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*