次のコード例を検討してください。
#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 を使用しました