大佬教程收集整理的这篇文章主要介绍了c – 如何创建定制时钟用于std :: chrono函数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
using std::chrono; time_point<My_Clock> tp; std::cout << duration_cast<seconds>(tp.time_since_epoch()).count() << std::endl;
这可能吗?如果没有,最干净的方法是做什么?
接下来我计算出1988-07-13是1970-01-01之后的6768天.使用这两个事实,其余的很容易:
#include <chrono> struct My_Clock { typedef std::chrono::seconds duration; typedef duration::rep rep; typedef duration::period period; typedef std::chrono::time_point<My_Clock> time_point; static const bool is_steady = false; static time_point Now() noexcept { using namespace std::chrono; return time_point ( duration_cast<duration>(system_clock::Now().time_since_epoch()) - hours(6768*24) ); } };@H_751_4@myClock需要嵌套的typedef来描述它的duration,rep,period和time_point.根据你的问题,我选择了秒作为持续时间,但你可以选择任何你想要的.
对于Now()@L_801_7@,我只是调用system_clock :: Now()并以秒为单位减去历元.我通过使用MyClock ::持续时间来编写所有内容,只需要一点聪明才能使我能够更容易地改变持续时间.请注意,我能够按时间减去时代,它隐含地转换为持续时间(即秒).或者,我可以建立自己的定制时间:
typedef std::chrono::duration<int,std::ratio_multiply<std::chrono::hours::period,std::ratio<24>>> days;
然后现在()的返回可能已经写成:
return time_point ( duration_cast<duration>(system_clock::Now().time_since_epoch()) - days(6768) );
无论如何,现在你可以这样使用:
#include <iostream> int main() { using namespace std::chrono; time_point<My_Clock> tp = My_Clock::Now(); std::cout << tp.time_since_epoch().count() << '\n'; }
哪个为我打印出来:
786664963
这表明今天(2013-06-16)在1988-07-13之后约为24.9年.
以上是大佬教程为你收集整理的c – 如何创建定制时钟用于std :: chrono函数?全部内容,希望文章能够帮你解决c – 如何创建定制时钟用于std :: chrono函数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。