考虑的代码这个例子:的std ::计时乘以持续时间
#include <chrono>
#include <iostream>
int main ()
{
using namespace std::chrono;
system_clock::time_point s = system_clock::now();
for (int i = 0; i < 1000000; ++i)
std::cout << duration_cast<duration<double>>(system_clock::now() - s).count() << "\n";
}
我预计这将打印秒所经过的时间。但它实际上是在几千秒内打印时间(预期结果乘以0.001)。难道我做错了什么?
编辑
由于seconds
相当于duration<some-int-type>
,duration_cast<seconds>
给出相同的结果。
我用gcc-4.7.3-R1
如果你想要秒数,你需要duration_cast –
@DaveF:只有当你想舍入到整数秒时,因为'seconds'是一个方便的typedef for'持续时间< some_integer_type>'。 'duration'也应该有一秒的时间。 –
我在VS2013中试过它 - 正常工作 – GabiMe