1. ホーム
  2. c++

[解決済み] <chrono>からint milli'sとfloat secondsで継続時間を取得するには?

2022-11-03 03:25:45

質問

タイマーとデュレーションのためにクロノライブラリを使おうとしています。

私は Duration frameStart; (アプリ起動時から) と Duration frameDelta; ( フレーム間の時間 )

を取得できるようにする必要があります。 frameDelta をミリ秒と浮動小数点数の秒数で取得できるようにする必要があります。

新しいc++11でどのように行うか <chrono> ライブラリでどのようにこれを行うのですか? 私はそれに取り組み、グーグル(情報はまばらです)しています。コードは大きくテンプレート化されており、特殊なキャストなどが必要で、このライブラリを正しく使用する方法がわかりません。

どのように解決するのですか?

これはあなたが探しているものですか?

#include <chrono>
#include <iostream>

int main()
{
    typedef std::chrono::high_resolution_clock Time;
    typedef std::chrono::milliseconds ms;
    typedef std::chrono::duration<float> fsec;
    auto t0 = Time::now();
    auto t1 = Time::now();
    fsec fs = t1 - t0;
    ms d = std::chrono::duration_cast<ms>(fs);
    std::cout << fs.count() << "s\n";
    std::cout << d.count() << "ms\n";
}

というのがあり、私の場合はこれをプリントアウトしています。

6.5e-08s
0ms