- 主题:设计标准库时间类的人脑子里到底怎么想的?
接口过于易用不符合c++设计规范,无法通过review
--
FROM 221.224.15.*
内部实现和对外接口是两码事。
至少应该提供常用接口。
【 在 ziqin 的大作中提到: 】
: 那万一你想要个int的milsec的戳怎么办?
:
: 万一你想要个带小数点的milsec怎么办?
: ...................
--来自微微水木3.5.14
--
FROM 140.206.194.*
toint64mills
todoublemills
--
FROM 120.244.162.*
std::microsecond std::millsecond
duration_cast<std::millsecond>()
不是一码事么
【 在 gameplayer 的大作中提到: 】
: rust的库就是这么做的,想要什么单位的都行: as_micros(), as_nanos(), as_mil
: lis()...
: 感觉比C++库这个好太多了。C++这个用起来太麻烦了!
: ...................
--
FROM 218.0.209.*
确实有点难用,而且一个东西名字巨长,从来都记不住
【 在 finlab 的大作中提到: 】
: duration_cast<duration<double, milli>>(endTime - startTime).count())
: 直接加个方法:(endTime - startTime).milli_seconds() 这样不好吗?
: 又不会弄混单位,写起来也简单。
: ...................
--
FROM 123.168.95.*
这个确实赞同你
【 在 finlab 的大作中提到: 】
:
: duration_cast<duration<double, milli>>(endTime - startTime).count())
:
: 直接加个方法:(endTime - startTime).milli_seconds() 这样不好吗?
: 又不会弄混单位,写起来也简单。
#发自zSMTH-v-@钛星
--
FROM 222.129.53.*
(end_time- start_time).format("{}")
如何?
能不能秒破你的疑问?
标委会那帮人就是工程干得少, api设计的废材.
【 在 ziqin 的大作中提到: 】
: 那万一你想要个int的milsec的戳怎么办?
: 万一你想要个带小数点的milsec怎么办?
: 万一你只是想要sec或者min怎么办?系统用个big int存个nano的count你们又要说库傻逼
: ...................
--
FROM 120.244.224.*
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.*
这个简单的换算,为啥非要封装吗? 调用者自己做个除法有啥问题?
【 在 z16166 的大作中提到: 】
: duration_cast是为了能在A、B之间按固定比例做任意转换,如果用A.milli_seconds()方法的办法,那需要加N种方法(如果以后扩展出天、年等单位,那还需要加方法),每种方法内部有N种模板匹配或者判断。还要考虑精度尽可能不损失。
: A(时、分、秒、毫秒、微秒、纳秒),6种
: B(时、分、秒、毫秒、微秒、纳秒),6种
: ...................
--
FROM 123.112.64.*
所以你顶楼的代码为什么要调用duration_cast然后说这个封装脑子有问题呢?
为什么不自己除一下呢?
【 在 finlab 的大作中提到: 】
: 这个简单的换算,为啥非要封装吗? 调用者自己做个除法有啥问题?
:
--
FROM 221.218.163.*