我可以使用以下方法测量时间:

t1 = system_clock::now();
...
t2 = system_clock::now();

duration<double> d = t2 - t1;

这样编译就可以了,但是我该怎么做呢?我想使用持续时间移动时间点吗?

示例(不编译):
system_clock::time_point tp1 = system_clock::now();
system_clock::time_point tp2 = tp1 + duration<double>(1.0);
system_clock::time_point'+'运算符似乎不接受duration<double>

如何以一个以秒为单位的时间(浮点值)指定的持续时间来移动时间点?我需要使用system_clock,因为它可以转换为time_t

最佳答案

这是你想要的吗?

system_clock::time_point tp1 = system_clock::now();
system_clock::time_point tp2 = tp1 + duration_cast<system_clock::duration>(duration<double>(1.5));
cout << duration_cast<milliseconds>(tp2 - tp1).count();

输出:差异为1500ms

Live Demo

10-04 15:04
查看更多