2017-12-07 19 views

答えて

4

私が知っているstd::chrono::high_resolution_clockの3つの実装があります:Visual Studio、gcc、clang(libC++と一緒に使用する場合)。

これらの3つはすべてナノ秒精度(std::chrono::high_resolution_clock::period::num = 1)です。 VSおよびlibC++の場合、high_resolution_clockはタイプ別名steady_clockになります。 gccでは、タイプ別名はsystem_clockになります。

std::chrono::high_resolution_clock::period::num != 1を防ぐ仕様は何もなく、このようなシステムでは1秒間は「ティック」で表現できないということは間違いありません。これはさらに

secondsに変換され、high_resolution_clock::durationに暗黙的に変換されません。

secondshigh_resolution_clock::duration両方は、あなたが移植性を使用することができますに変換可能ですための最も粗い期間見つけるには:私の知る実装のすべてのために

using CT = common_type_t<seconds, high_resolution_clock::duration>; 

を、CTは、型の別名でありますnanosecondsです。

関連する問題